【问题标题】:ASP.NET MVC got 405 error on HTTP DELETE request?ASP.NET MVC 在 HTTP DELETE 请求上出现 405 错误?
【发布时间】:2010-12-18 03:38:24
【问题描述】:

我正在尝试使用 JavaScript 将 DELETE 传递给 asp.net MVC 中的 URL,但是我总是得到 405 Method not allow 返回。

有没有办法让这个工作?

仅供参考:我已将 [AcceptVerb(HttpVerb.Delete)] 属性放在我的控制器上。

DELETE /post/delete/8

这是请求

【问题讨论】:

  • 你能否通过 Fiddler 或 FireBug 向我们展示一些 REQUEST 数据,以便我们再次确认 requested 的内容?
  • 我已经通过 Firebug 添加了请求,那个是请求,并且没有数据,因为我还在测试.​​.....

标签: asp.net-mvc rest http-status-code-405


【解决方案1】:

这也让我很沮丧。这是因为 WebDAVModule 默认安装在 IIS 7.5 上。通过删除模块,您可以摆脱这种令人沮丧的限制。简单来说,

    <system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <modules runAllManagedModulesForAllRequests="true">
            <remove name="WebDAVModule"/> <- add this

来自http://shouldersofgiants.co.uk/Blog/post/2009/11/27/HTTP-Error-405-With-ASPNet-MVC-and-HTTP-PUT-on-IIS-75.aspx

【讨论】:

  • 太好了,这对我也有帮助。它可能只是 MVC.NET 3 的事情,因为我不记得它发生在 MVC.NET 2 中。
  • 也适用于 PUT 请求!谢谢!
  • 在我的情况下,我必须在删除 webdave 模块之前删除 WebDAV 处理程序映射中的 PUT 和 DELETE 动词(我想删除整个 WebDAV handlerMapping 也可以)。通过仅删除模块而不是映射,我发生了通信异常......我还必须在 ExtensionlessUrlHandler-Integrated-4.0 处理程序映射动词限制中添加 PUT 和 DELETE 动词
  • 我可以验证查尔斯的评论,上面的答案对我不起作用。我不得不听从查尔斯的指示。我想这是对 2008 R2 上的 IIS 7.5 安装进行更改的结果。
【解决方案2】:

您应该检查 web.config(如果使用 IIS7,否则为 IIS6 及更低版本的 IIS 管理器)以确保 DELETE 动词已映射到 MCV 请求处理程序。

【讨论】:

  • -> 你的意思是这个?
猜你喜欢
  • 2014-11-20
  • 2017-09-09
  • 2019-09-08
  • 1970-01-01
  • 1970-01-01
  • 2011-05-14
  • 1970-01-01
  • 1970-01-01
  • 2019-04-20
相关资源
最近更新 更多