程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> Vista自帶IIS 7.0+Ajax.net的配置問題

Vista自帶IIS 7.0+Ajax.net的配置問題

編輯:.NET實例教程
VS2005 sp1在Vista下運行還是不錯的。不過很多新的東西在一起就容易產生不兼容的問題。項目使用ASP.Net,用.Net 2.0。部署在WinDOS Server 2003 + IIS 6.0。開發使用的是Vista,自帶有IIS 7.0。項目還使用AJax.Net。

Vista下的開發很容易,只要安裝好IIS,注意子選項要選得寧多不缺。很多問題都是因為IIS 7.0裡面的功能沒安裝。.Net 2.0的問題在Vista下沒有。無需regiis。注意次序很重要。IIS裝好後就可以裝VS2005。2003大概是不兼容的。裝好後馬上升級。Vista自動安裝VS2005 SP1 for Vista。運行的時候老老實實run as administrator。這些功課都做完後基本可以用來開發了。但是AJax.Net現在已經必不可少,也要下載來安裝。安裝十分簡單,但如果不是按照上面的次序安裝就可能缺功能了。

到此安裝結束。打開VS,新建Web Project的時候可以看到AJax enabled web app選項。ok,就是它了。運行下新的項目,一般不會有錯。但我遇到了很多情況。包括以前,現在的。現來總結一下。

首先要確認AJaxControlToolkit.dll 拷貝到Bin目錄。項目向導有時候不會那麼聰明的。

IIS中是否設置了DefaultAppPool,一般不要去設定為Classic .Net AppPool。

檢查Web.Config文件。為了兼容以前版本,<system.web>中必須有:



    <httpHandlers>
      <remove verb="*" path="*.asmx"/>
      <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
      <add verb="*" path="*_APPService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
      <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
    </httpHandlers>
    <httpModules>
      <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    </httpModules>
為了能在IIS 7.0下工作,下面也是同樣要的:



<system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <modules>
      <add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    </modules>
    <handlers>
      <remove name="WebServiceHandlerFactory-Integrated" />
      <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode"
           type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
      <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_APPService.axd" preCondition="integratedMode"
           type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
  <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    </handlers>
</system.webServer>
其中<validation validateIntegratedModeConfiguration="false"/>能讓兩個同樣的設置平安共處,在IIS 6.0和7.0下都能使用。

檢查assembly有沒有加上;<add tagPrefix="ajaxToolkit" namespace="AjaxControlToolkit" assembly="AjaxControlToolkit"/>可以方便在代碼中直接插入<AJaxToolkit:ModalPopupExtender>之類標簽。

測試項目階段,如果IIS提示有Permission問題,解鎖:(run as administrator)

C:\Windows\system32>%windir%\system32\inetsrv\appcmd.exe unlock config -section:
system.webServer/handlers

若出現JavaScript報錯,什麼Sys undefined,看看Web.Config。還有axd文件是否可以被IIS解析?

總之,IIS6的問題要少很多。在6上成功運行的話,毛病多數在Web.Config上。IIS的配置也不可放過。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved