在 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 方法的主要内容,如果未能解决你的问题,请参考以下文章
ApiController 中长时间运行的任务(使用 WebAPI,自托管 OWIN)