在將應用程序從經典模式遷移到集成模式時,可以保留經典模式下的自定義模塊和處理程序注冊,也可以將這些注冊移除。如果不移除經典模式下使用的 httpModules 和 httpHandlers 注冊,則必須將 validation 元素的 validateIntegratedModeConfiguration 屬性設置為 false 以避免錯誤。如果保留自定義模塊,添加以下代碼:
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
</system.webServer>
如果僅僅是將集成模式改成經典模式,那么就是治標不治本了。
轉摘一篇文章:
關於ESPS和SCSJ在Windows server 2008的問題總結
SCSJ出現的問題在於集成模式和經典模式的選擇上,系統本身是沒有問題的。我們在部署系統的時候,選擇了集成模式,導致WebConfig的HttpHandlers節點無法訪問。
在集成模式中,HTTP模塊和HTTP處理程序不再定義於<system.web>中,而定義於<system.webServer>中。如果在集成模式中運行一個包括了HTTP模塊或HTTP處理程序的web.config文件,那么將會發生失效。
因為集成模式下,要想運行HTTP處理程序,必須在配置文件中添加一個<system.webServer>\<handlers>節點代替經典模式下的<system.web>\<httpHandler>節點。進行這種轉換后,程序HTTP處理程序成功執行。
具體的轉換方式如下:
在經典模式中,HTTP處理程序注冊方式是添加一個<system.web>\<httpHandler>節點:
在集成模式中,HTTP處理程序注冊方式是添加一個<system.webServer>\<handlers>節點:
使用集成模式,申請人姓名無法帶出來,除非改成經典模式。
使用集成模式,申請人可以帶出來,因為使用了<system.webServer>\<handlers>節點進行HTTP處理程序的注冊
結論:本人覺得非常遺憾,兩個系統之所以出錯,其實都與程序無關,而與服務器的部署有關,關於這個問題的責任,其實也是程序員和系統管理員共同的責任。首先程序員不懂得windows server 2008的部署,不同的系統,不同的程序,其部署的選項隨程序的寫法而有所不同,我們不能怪系統管理員,因為系統管理員對系統的程序是不清楚的,所以我們不能祈求系統管理員能夠幫我們部署成功。所以作為程序員,我們對系統的部署是要非常清楚的。