.Net解決Web API中“服務(wù)器響應(yīng)狀態(tài)碼為405(方法不允許)”錯(cuò)誤的兩種解決方案
我在為一個(gè)新項(xiàng)目使用 Web API 時(shí),突然遇到一個(gè)錯(cuò)誤:“服務(wù)器響應(yīng)狀態(tài)碼為 405(方法不允許) ”,當(dāng)時(shí)我正嘗試通過(guò) API 刪除一條記錄。我百思不得其解,最終找到了解決方案?,F(xiàn)在我將分享這個(gè)解決方案,希望對(duì)您有所幫助。
如果您遇到此錯(cuò)誤,可以嘗試以下解決方案。
方案 1修改 Web.Config 文件
這是您必須嘗試的第一件事。請(qǐng)?jiān)?Web.Config 文件中添加以下標(biāo)簽。
validation validateIntegratedModeConfiguration= "false" /> <modules runAllManagedModulesForAllRequests= "true" > <remove name= "WebDAVModule" /> </modules> 如果仍然出現(xiàn)錯(cuò)誤,請(qǐng)嘗試在 `<handlers>` 標(biāo)簽下添加一個(gè)標(biāo)簽,如下所示: `<handlers> <remove name="WebDAV" /> ..... </handlers>`
如果以上方法無(wú)效,您可以嘗試下一個(gè)解決方案。
方案 2恢復(fù)參數(shù)名稱
眾所周知,我們有一個(gè)名為 `WebApiConfig.cs` 的文件,用于設(shè)置 `MapHttpRoute` 和其他配置過(guò)濾器。默認(rèn)情況下,此處的參數(shù)為“id”,如下所示。

config.Routes.MapHttpRoute( ?
? ?name: "DefaultApi", ?
? ?routeTemplate: "api/{controller}/{id}", ?
? ?defaults: new { id = RouteParameter.Optional } ?
); ?如果您以任何方式更改了函數(shù)的參數(shù),則需要將其恢復(fù)為“ id ”,或者需要在WebApiConfig.cs文件中進(jìn)行更改。
例如,以下是我的刪除函數(shù)。
// DELETE: api/Subscriber/5 ?
public void Delete(int subId) ?
{ ?
? ? tbl_Subscribers dlt = myEntity.tbl_Subscribers.Find(subId); ?
? ? if (dlt != null) ?
? ? { ?
? ? ? ? try ?
? ? ? ? { ?
? ? ? ? ? ? myEntity.tbl_Subscribers.Remove(dlt); ?
? ? ? ? ? ? myEntity.SaveChanges(); ?
? ? ? ? } ?
? ? ? ? catch (Exception) ?
? ? ? ? { ?
? ? ? ? ? ? throw; ?
? ? ? ? } ?
? ? } ?
} ?如您所見,我已將參數(shù)更改為“subId”。因此,我一直收到“服務(wù)器響應(yīng)狀態(tài)碼為 405(方法不允許) ”的錯(cuò)誤。然后,我按如下方式修改了我的函數(shù)。
// DELETE: api/Subscriber/5 ?
public void Delete(int id) ?
{ ?
? ? tbl_Subscribers dlt = myEntity.tbl_Subscribers.Find(id); ?
? ? if (dlt != null) ?
? ? { ?
? ? ? ? try ?
? ? ? ? { ?
? ? ? ? ? ? myEntity.tbl_Subscribers.Remove(dlt); ?
? ? ? ? ? ? myEntity.SaveChanges(); ?
? ? ? ? } ?
? ? ? ? catch (Exception) ?
? ? ? ? { ?
? ? ? ? ? ? throw; ?
? ? ? ? } ?
? ? } ?
} ?更改參數(shù)名稱后,一切正常。希望對(duì)您有所幫助。就這些了。我們完成了。祝您編碼愉快。
總結(jié)
是否遺漏了您認(rèn)為需要的內(nèi)容?您嘗試過(guò) Web API 嗎?您是否曾經(jīng)想過(guò)實(shí)現(xiàn)這個(gè)需求?您覺(jué)得這篇文章有用嗎?
以上就是.Net解決Web API中“服務(wù)器響應(yīng)狀態(tài)碼為405(方法不允許)”錯(cuò)誤的兩種解決方案的詳細(xì)內(nèi)容,更多關(guān)于.Net解決Web API出現(xiàn)405錯(cuò)誤的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
ASP.NET Web API教程 創(chuàng)建Admin視圖詳細(xì)介紹
現(xiàn)在我們轉(zhuǎn)入客戶端,并添加一個(gè)能夠使用從Admin控制器而來(lái)的數(shù)據(jù)的頁(yè)面。通過(guò)給控制器發(fā)送AJAX請(qǐng)求的方式,該頁(yè)面將允許用戶創(chuàng)建、編輯,或刪除產(chǎn)品2012-11-11
C#中string與byte[]的轉(zhuǎn)換幫助類-.NET教程,C#語(yǔ)言
在寫c#程序時(shí),string和byte[]之間的轉(zhuǎn)換比較煩,在移植一些老程序時(shí)感覺(jué)很不好。我在c#中使用des和tripledes時(shí)移植一塊老代碼時(shí)也遇到了同樣的情況。為了下次不為同樣的事情煩惱,就寫了下面的幫助類。2008-03-03
.NET?Core?中對(duì)象池?Object?Pool的使用
這篇文章主要介紹了?.NET?Core?中對(duì)象池?Object?Pool的使用,對(duì)象池簡(jiǎn)單來(lái)說(shuō)就是一種為對(duì)象提供可復(fù)用能力的軟件設(shè)計(jì)思路,對(duì)象池最常用的場(chǎng)景是游戲設(shè)計(jì),因?yàn)樵谟螒蛑写罅看嬖谥蓮?fù)用的對(duì)象,源源不斷的子彈出現(xiàn)并不是循環(huán)再生的,下面一起進(jìn)入文章了解具體內(nèi)容吧2021-11-11
ASP.NET學(xué)習(xí)中常見錯(cuò)誤總結(jié)歸納
這篇文章主要介紹了asp.net學(xué)習(xí)過(guò)程中碰到的常見錯(cuò)誤的解決方法,通讀本篇對(duì)大家的學(xué)習(xí)或工作具有一定的價(jià)值,需要的朋友可以參考下2021-09-09

