小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Asp.Net Core IIS發(fā)布后PUT、DELETE請求錯誤405.0 - Method Not Allowed 因為使用了無效方法(HTTP 謂詞)

 印度阿三17 2018-09-28

Asp.Net Core IIS發(fā)布后PUT、DELETE請求錯誤405.0 - Method Not Allowed 因為使用了無效方法(HTTP 謂詞)

一、在使用Asp.net WebAPI 或Asp.Net Core WebAPI 時 ,如果使用了Delete請求謂詞,本地生產(chǎn)環(huán)境正常,線上發(fā)布環(huán)境報錯。

服務器返回405,請求謂詞無效。

二、問題分析診斷

首先檢查跨域配置是沒有問題的,查詢數(shù)據(jù)和新增數(shù)據(jù)的請求也是沒有問題的,只出現(xiàn)在修改和刪除數(shù)據(jù)。通過了解ABP Web API請求頭設置,查詢是GET請求,新增是POST請求,而修改是PUT請求,刪除是DELETE請求,IIS服務通常都是支持get和post請求的,由此分析推斷很有可能是IIS不支持put和delete謂詞請求。

通過百度了一遍對IIS進行新添加謂詞put和delete。 點擊部署應用 -> 出來程序映射 –> aspNetCore(由于我部署是.Net Core 程序,所以選擇AspNetCoreModule模塊)

?

雙擊打開

通過檢查,aspNetCore本身是支持全部謂詞的,現(xiàn)在肯定是和這個謂詞有關,但需要更詳細的錯誤信息。

既然不錯信息是跨域,我們先排除跨域因數(shù)的影響,現(xiàn)在看到的跨域錯誤信息很有可能是個假象,我們通過swagger對web API進行調(diào)試。

調(diào)試需要配置授權token,請參考博客:http://www.cnblogs.com/donaldtdz/p/7892865.html

先測試接口:/api/services/app/User/GetAll

?

測試結(jié)果:通過 200

?

再測試接口:/api/services/app/User/Delete

?

測試結(jié)果:

HTTP 錯誤 405.0 - Method Not Allowed

無法顯示您正在查找的頁面,因為使用了無效方法(HTTP 謂詞)。

?

將response body 用保存用瀏覽器打開如下:

?

查看詳細錯誤信息,我們開始的推斷是沒有問題的,最后也嘗試了很多方法,最終問題核心在于?模塊WebDAVModule

三、解決方案1 (這種方式針對當前服務器所有網(wǎng)站,不推薦,因為可能替他網(wǎng)站會使用到WebDAV)

在啟用或關閉Windows功能 –> Internet Information Services 關閉WebDAV發(fā)布

?

四、解決方案2 (針對當前網(wǎng)站,去除WebDav 模塊)

修改,當前Asp.Net Core 發(fā)布后的WebConfig

去除WebDAVModule,

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

復制代碼

?

<configuration>
  <system.webServer>
      <modules runAllManagedModulesForAllRequests="true">  
      <remove name="WebDAVModule" />  
    </modules>  
    <handlers accessPolicy="Read, Script">
            <remove name="WebDAV" />
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath="dotnet" arguments=".\QL.MiniData.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
  </system.webServer>
</configuration>

復制代碼

這樣就可以了。

?

更多參考:

https://www.cnblogs.com/donaldtdz/p/8094300.html

https://blog.csdn.net/qiujuer/article/details/23827531

ASP.NET Core中使用Razor視圖引擎渲染視圖為字符串(轉(zhuǎn))

Asp.Net Core 自定義設置Http緩存處理

分類:?Asp.Net Core

標簽:?Asp.Net Core IIS發(fā)布,?PUT、DELETE請求錯誤405.0,?Method Not Allowed,?因為使用了無效方法(HTTP 謂詞)

來源:http://www./content-1-28081.html

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多