在 DELETE 上不允许使用 Owin 自托管 Web API 405 方法

Posted

技术标签:

【中文标题】在 DELETE 上不允许使用 Owin 自托管 Web API 405 方法【英文标题】:Owin self-host Web API 405 method not allowed on DELETE 【发布时间】:2015-04-11 07:10:28 【问题描述】:

我正在创建一个 Owin 自托管 Web API,并在向服务器发布 DELETE 请求时收到 405 方法不允许响应。 POST 和 GET 似乎没有问题。

我可以在https://aspnet.codeplex.com/SourceControl/latest#Samples/WebApi/OwinSelfhostSample/ReadMe.txt 的 ASP.Net 示例应用程序 OwinSelfHostSample 项目中重现错误

我没有安装 WebDAV,并且使用 Fiddler 形成的请求没有明显问题。我还安装了 Cors 并将其设置为 AllowAll。

关于什么是阻止 405 的任何建议?

【问题讨论】:

请发布完整的 web.config。最后一个告诉我他们“尚未安装 WebDAV”的人安装了 WebDAV >_ 【参考方案1】:

好的,所以我知道这很蹩脚,但我在发布后几分钟就发现了问题。我确实花了大约 3 个小时试图弄清楚这一点。显然问题出在路由上。我的 ID 是一个字符串,所以我给它的 action 参数是列的名称,而不是“id”,这是配置默认路由查找的内容。 一旦我将操作参数名称更改为“id”,它就会按预期工作。

【讨论】:

以上是关于在 DELETE 上不允许使用 Owin 自托管 Web API 405 方法的主要内容,如果未能解决你的问题,请参考以下文章

WebAPI2 (OWIN) 上不允许使用 405 方法

ApiController 中长时间运行的任务(使用 WebAPI,自托管 OWIN)

[翻译]自托管WebApi使用OWIN和Unity

在使用 Owin 自托管的 Web API 中获取远程主机 IP

OWIN 理解 ipv6 自托管的 URL 是啥?

使用 Ninject OWINHost 的 OWIN 自托管应用程序是不是需要 system.web?