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

 更新时间:2026年04月15日 08:53:18   作者:hefeng_aspnet  
这篇文章主要介绍了使用WebAPI时遇到405(方法不允许)错误后,通过修改Web.Config文件和恢复参数名称来解决问题,第一种解决方案是修改Web.Config文件;第二种解决方案是恢复参数名称,通过以上方法;作者成功解决了问题,需要的朋友可以参考下

我在为一个新项目使用 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错误的资料请关注脚本之家其它相关文章!

相关文章

  • .NET 6中使用DateOnly和TimeOnly类型

    .NET 6中使用DateOnly和TimeOnly类型

    这篇文章主要介绍了.NET 6中使用DateOnly和TimeOnly类型,在.NET 6(preview 4)中引入了两个期待已久的类型,将作为核心库的一部分。DateOnly和TimeOnly允许开发人员表示DateTime的日期或时间部分,下文具体内容,需要的小伙伴可以参考一下
    2022-01-01
  • ASP.NET Core MVC 过滤器(Filter)

    ASP.NET Core MVC 过滤器(Filter)

    本文小编要给大家介绍的是ASP.NET Core MVC 过滤器,ASP.NET MVC 中的过滤器允许在执行管道中的特定阶段之前或之后运行代码。可以对全局,也可以对每个控制器或每个操作配置过滤器,需要的朋友可以参考下面文章的具体内容
    2021-09-09
  • NAT网络地址转换详情

    NAT网络地址转换详情

    这篇文章主要以NAT作用和NAT的应用方向及网络配置等多个知识点描述网络地址转换的过程,需要的朋友可以参考下面文章
    2021-08-08
  • 深入分析XmlSerializer对象的Xml序列化与反序列化的示例详解

    深入分析XmlSerializer对象的Xml序列化与反序列化的示例详解

    本篇文章是对XmlSerializer 对象的Xml序列化与反序列化的应用进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • ASP.NET Core使用功能开关控制路由访问操作

    ASP.NET Core使用功能开关控制路由访问操作

    这篇文章主要介绍了ASP.NET Core使用功能开关控制路由访问操作,而对于一些试验性的功能,我们并不希望用密码去控制是否允许访问,而是想用一种开关的方式开放,下面文章我们就来试着实现这个功能,需要的小伙伴可以参考一下
    2022-02-02
  • DataGridView控件详细介绍

    DataGridView控件详细介绍

    DataGridView是用于Windows Froms 2.0的新网格控件。它可以取代先前版本中DataGrid控件,它易于使用并高度可定制,支持很多我们的用户需要的特性
    2012-11-11
  • ASP.NET Core Web API 教程Project Configuration

    ASP.NET Core Web API 教程Project Configuration

    本文将介绍 Startup 类中的配置方法以及如何通过这些方法来设置应用程序。除此之外,还将介绍如何注册服务以及如何通过扩展方法来实现注册,需要的朋友可以参考下面文章内容
    2021-09-09
  • .Net Core 配置文件读取IOptions,IOptionsMonitor,IOptionsSnapshot

    .Net Core 配置文件读取IOptions,IOptionsMonitor,IOptionsSnapshot

    这篇文章主要介绍了.Net Core配置文件读取IOptions,IOptionsMonitor,IOptionsSnapshot,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • asp.net mvc路由篇 如何找到 IHttpHandler方法介绍

    asp.net mvc路由篇 如何找到 IHttpHandler方法介绍

    学习是使用asp.net已经有很长一段时间了,现在就来分析一下mvc的整过过程吧。个人计划写一个mvc系列的博文,仅从源代码的角度来分析mvc。在接触mvc时我们一定会经历路由,那么路由这东东是怎么搞出来的啊
    2012-11-11
  • ASP.NET Core 依赖注入详细

    ASP.NET Core 依赖注入详细

    这篇文章主要介绍ASP.NET Core 依赖注入,ASP.NET Core 应用在启动过程中会依赖各种组件提供服务,这些组件会以接口的形式标准化,这些组件就是我们所说的服务,ASP.NET Core框架建立在一个底层的依赖注入框架之上,它使用容器提供所需的服务,下面我们就来详细了解一下
    2021-10-10

最新评论