一聚教程网:一个值得你收藏的教程网站

热门教程

.Net解决Web API中“服务器响应状态码为405(做法不允许)”错误的两种解决方案实用指南

时间:2026-08-27 11:34:02 编辑:袖梨 来源:一聚教程网

平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“.Net解决Web API中“服务器响应状态码为405(做法不允许)”错……”来说,它看着像小点,放到项目里常会牵出环境、配置、兼容性和维护成本。下面按实际采用顺序,把思路、关键写法和容易踩坑的地方讲清楚,便于大家直接对照操作。

理解这一步时,我在为一个新项目采用 Web API 时,突然遇到一个错误:“服务器响应状态码为 405(方法不允许) ”,当时我正尝试借助 API 删除一条记录。我百思不得其解,最后找到了解决方案。现在我将分享这个解决方案,希望对您有所帮助。

若您遇到此错误,能够尝试以下解决方案。

方案 1修改 Web.Config 文件

落到代码里,这是您必须尝试的第一件事。请在 Web.Config 文件中添加以下标签。

validation validateIntegratedModeConfiguration= "false" />  
<modules runAllManagedModulesForAllRequests= "true" >
   <remove name= "WebDAVModule" />
</modules>
如果仍然出现错误,请尝试在 `<handlers>` 标签下添加一个标签,如下所示:
`<handlers>
   <remove name="WebDAV" />
   .....
</handlers>`

若以上方法无效,您能够尝试下一个解决方案。

方案 2恢复参数名称

结合项目来看,众所周知,我们有一个名为 `WebApiConfig.cs` 的文件,用来设置 `MapHttpRoute` 和其他设置过滤器。默认情况下,此处的参数为“id”,如下所示所示。

config.Routes.MapHttpRoute(  
   name: "DefaultApi",  
   routeTemplate: "api/{controller}/{id}",  
   defaults: new { id = RouteParameter.Optional }  
);  

在这个场景下,若您以任何方式更改了函数的参数,则需将其恢复为“ id ”,或者需在WebApiConfig.cs文件中进行更改。

比如,以下是我的删除函数。

// 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;  
        }  
    }  
}  

在这个场景下,如您所见,我已将参数更改为“subId”。因此,我一直收到“服务器响应状态码为 405(方法不允许) ”的错误。随后,我按如下所示方式修改了我的函数。

// 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;  
        }  
    }  
}  

落到代码里,更改参数名称后,一切正常。希望对您有所帮助。就这些了。我们完成了。祝您编码愉快。

总结

是否遗漏了您认为需的内容?您尝试过 Web API 吗?您是否曾经想过实现这个需求?您觉得这篇文章有用吗?

理解这一步时,以上就是.Net解决Web API中“服务器响应状态码为405(方法不允许)”错误的两种解决方案的详细内容,更多关于.Net解决Web API出现405错误的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
  • 让IIS兼容.NET Web Api PUT和DELETE请求(得到405的问题)
  • .Net8 WebAPI项目新建部署的实现
  • Asp.NET Core WebApi 设置文件详细说明
  • ASP.NET Core Web API之Token验证的实现
  • asp.net core web api项目添加自定义中间件的实现

热门栏目