標籤:mode runtime asp jpg 管道 ted handle ida dll
為什麼會出現以上錯誤?
在IIS7的應用程式集區有兩種模式,一種是“整合模式”,一種是“傳統模式”。
傳統模式 則是我們以前習慣的IIS 6 的方式。
如果使用整合模式,那麼對自訂的httpModules 和 httpHandlers 就要修改設定檔,需要將他們轉移到<modules>和<hanlders>節裡去。
有兩種解決方式:
第一種方法、配置應用程式集區
在IIS7上配置應用程式集區,並且將程式池的模式改為“經典”,之後一切正常。
第二種:修改設定檔webconfig
修改前:
<configuration> <system.web> <httpHandlers> <add path="*.aspx" verb="*" type="CustomerHander, ClassLibrary1" /> </httpHandlers> <compilation debug="true" targetFramework="4.5" /> <httpRuntime targetFramework="4.5" /> </system.web></configuration>
修改後:
<configuration> <system.web> <compilation debug="true" targetFramework="4.5" /> <httpRuntime targetFramework="4.5" /> </system.web> <system.webServer> <handlers> <add name="CustomerHander" path="*.aspx" verb="*" type="CustomerHander, ClassLibrary1" preCondition="integratedMode" /> </handlers> <validation validateIntegratedModeConfiguration="false" /> </system.webServer></configuration>
項目結構如下:
1.自訂hander是引用的其他類庫,所以type屬性用逗號分割,前面是:全限定類名 後面是:所在的dll檔案(不包括尾碼名)
2.如果hander在本項目中,
則web.config檔案中的配置如下:
type屬性只填寫類名就可以了。
補充:如果想保留原先設定,更改後可以設定禁止驗證整合模式(validateIntegrateModeConfiguration="false"),是不會產生錯誤的。
webconfig中註冊HttpHandler報錯:檢測到在整合的託管管道模式下不適用的 ASP.NET 設定。