Asp.net-Web-Api
WebDAV 和 WebAPI 一起導致錯誤:處理程序“ExtensionlessUrlHandler-Integrated-4.0”在其模組列表中有一個錯誤模組“ManagedPipelineHandler”
我在我的站點上安裝並執行了 WebDAV,作為一個虛擬子站點,我有一個 MVC WebAPI 站點,該 API 執行良好,直到我嘗試向它發送 PUT 請求,然後我收到以下錯誤:
HTTP 錯誤 500.21 - 內部伺服器錯誤
處理程序“ExtensionlessUrlHandler-Integrated-4.0”在其模組列表中有一個錯誤模組“ManagedPipelineHandler”
如果我禁用 WebDAV,那麼一切正常,並且不會出現錯誤。這僅在啟用 WebDAV 時發生。
我的 web.config 中有以下所有程式碼:
<system.webServer> <validation validateIntegratedModeConfiguration="false" /> <modules runAllManagedModulesForAllRequests="false"> <remove name="WebDAVModule" /> </modules> <handlers> <remove name="WebDAV" /> <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" /> <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" /> <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> </handlers> </system.webServer>我試過弄亂各種應用程序池。
我也厭倦了所有這些問題中提到的所有事情:
如何擺脫這個錯誤處理程序“PageHandlerFactory-Integrated”的模組列表中有一個壞模組“ManagedPipelineHandler”
處理程序“ExtensionlessUrlHandler-Integrated-4.0”在其模組列表中有一個錯誤模組“ManagedPipelineHandler”
如何修復:處理程序“PageHandlerFactory-Integrated”的模組列表中有一個錯誤模組“ManagedPipelineHandler”
這些都沒有解決我的問題,還有什麼我沒有嘗試過的嗎?
我們最終帶著這個去了微軟,他們審查了幾個星期,然後回來說不可能在同一個站點上執行 WebDAV 和 WebAPI。
他們將嘗試在 IIS 的未來版本中解決此問題。
@jblaske 有很好的回應。
如果您想暫時刪除它,那麼也許這篇文章是最好的解決方案。
如果您想一起刪除處理程序,請按照以下步驟操作。
- 打開 IIS 並轉到相關站點。
- 點擊“處理程序映射”
- 找到名為“WebDAV”的處理程序
- 選擇它並刪除它
這是我原來的文章。