【轉】項目部署在IIS上訪問接口報405:Method not Allowed


在虛擬機的IIS上部署項目的時候訪問接口報405錯誤,接口請求方式為(PUT),試了下所有PUT請求的都無法訪問,由此可知IIS應該是未允許當前請求方式,(Delete同理)

解決方案

1.首先查看aspNetCore在IIS中是否限制了請求方式,經過查看並未發現不被允許的請求方式。處理程序映射=>aspNetCore

2.修改發布后的文件web.config

粘貼圖片

新增這段代碼:

 

<modules runAllManagedModulesForAllRequests="true">
<remove name="WebDAVModule" />
</modules>

 

或者

 

<modules runAllManagedModulesForAllRequests="true" runManagedModulesForWebDavRequests="true" >
  <remove name="WebDAVModule" />
</modules>

 

查了一下解釋是: 通過了解 IIS拒絕PUT和DELETE請求是由默認注冊的一個名為WebDAVModule的自定義HttpModule導致的。WebDAV的全稱為Web-based Distributed Authoring and Versioning,它是一個在多用戶之間輔助協同編輯和管理在線文檔的HTTP擴展。該擴展使應用程序可以直接將文件寫到Web Server上,同時支持文件的加鎖和版本控制。微軟是推動WebDAV成為一個標准的主導力量,它自己利用自定義的HttpModule實現了IIS針對WebDAV的支持。但是這個默認注冊(注冊名稱為WebDAVModule)會拒絕HTTP方法為PUT和DELETE的請求,如果我們的站點不需要提供針對WebDAV的支持,解決這個問題最為直接的方式就是利用如下配置將注冊的HttpModule移除即可。

3.關閉WEBDAV功能

.NET Core下dev下是沒有web.config,只有發布后才生成,這就導致每次發布都要修改。 這樣非常不方便。如果沒有使用到WebDAV ,可以直接移除這個模塊。卸載程序=》啟用或關閉Windows功能=>Internet Information Service=>萬維網服務=>常見HTTP功能=>WEBDAV發布。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM