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

Written by

in

文章目录
  • 这是您必须尝试的第一件事。请在 Web.Config 文件中添加以下标签。 validation validateIntegratedModeConfiguration= “false” /> <modules runAllManagedModulesForAllRequests= “true” > <remove name= “WebDAVModule” /> </modules> 如果仍然出现错误,请尝试在 `<handlers>` 标签下添加一个标签,如下所示: `<handlers> <remove name=”WebDAV” /> ….. </handlers>` 如果以上方法无效,您可以尝试下一个解决方案。
  • 众所周知,我们有一个名为 `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项目添加自定义中间件的实现
  • 目录
    • 方案 1修改 Web.Config 文件
    • 方案 2恢复参数名称
    • 总结

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

    如果您遇到此错误,可以尝试以下解决方案。

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

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

    如果以上方法无效,您可以尝试下一个解决方案。

    众所周知,我们有一个名为 `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项目添加自定义中间件的实现

    站内搜索