如標題,
後端使用.NET Core MVC做Web API,
前端使用Vue js做SPA,
[HttpPut][HttpDelete][HttpPatch]該掛的屬性都有掛,
使用VS2019的IIS模擬器不會有這個問題,
但發佈到IIS上使用AXIOS PUT
、DELETE
、PATCH
都會回傳405,
已經試過下列網路上的方法皆無效。
<modules runAllManagedModulesForAllRequests="true">
<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" />
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
參考https://blog.johnwu.cc/article/iis-http-405-error.html已經卡關幾個小時了,請問是否有大大遇過類似問題,並成功解決的? 或是知道如何解決的?
===========================已解決===========================
之前由於不明原因,應用程式集區-整合式會出現伺服器應用程式無法使用
,於是無知的我自動改成傳統式,結果問題就出在這裡。
重灌IIS後已一並解決。
我的web.config 裡面有一段,請參考看看
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.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>
感謝回覆,這個已經試過無效了。
換個方向,改其他測試工具試試
Postman - 測試 API 神器 > https://ithelp.ithome.com.tw/articles/10201503
Postman也是得到附圖的結果。
使用DELETE,亂打路徑也是一樣的結果,估計是被IIS擋住了。