Asp.net-Web-Api

WebDAV 和 WebAPI 一起導致錯誤:處理程序“ExtensionlessUrlHandler-Integrated-4.0”在其模組列表中有一個錯誤模組“ManagedPipelineHandler”

  • May 31, 2019

我在我的站點上安裝並執行了 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 有很好的回應。

如果您想暫時刪除它,那麼也許這篇文章是最好的解決方案。

如果您想一起刪除處理程序,請按照以下步驟操作。

  1. 打開 IIS 並轉到相關站點。
  2. 點擊“處理程序映射”
  3. 找到名為“WebDAV”的處理程序
  4. 選擇它並刪除它

這是我原來的文章

引用自:https://stackoverflow.com/questions/17156397