【发布时间】:2014-06-23 12:13:38
【问题描述】:
我有一个 Web API 项目,我无法针对它启用“PUT/Patch”请求。
我从提琴手那里得到的回应是:
HTTP/1.1 405 Method Not Allowed
Cache-Control: no-cache
Pragma: no-cache
Allow: GET,POST,DELETE
Content-Type: application/json; charset=utf-8
Expires: -1
Server: Microsoft-IIS/8.0
X-AspNet-Version: 4.0.30319
X-SourceFiles: =?UTF-8?B?QzpcUHJvamVjdHNcZG90TmV0XFdlYkFQSVxBZFNlcnZpY2VcQWRTZXJ2aWNlXGFwaVxpbXByZXNzaW9uXDE1?=
X-Powered-By: ASP.NET
Date: Tue, 06 May 2014 14:10:35 GMT
Content-Length: 72
{"message":"The requested resource does not support http method 'PUT'."}
根据以上回复,“PUT”动词不被接受。但是,我无法弄清楚相关处理程序的配置位置。
类的“Put”方法声明如下:
[HttpPatch]
[HttpPut]
public HttpResponseMessage Put(Int32 aID, [FromBody] ImpressionModel impressionModel)
{
bla, bla, bla, bla
}
我已阅读并实施了以下线程中解释的更改: - Asp.NET Web API - 405 - HTTP verb used to access this page is not allowed - how to set handler mappings - http://www.asp.net/web-api/overview/testing-and-debugging/troubleshooting-http-405-errors-after-publishing-web-api-applications
当我尝试对我的 Web API 项目发出“PUT”命令时,仍然收到 405 响应,因此没有任何效果。
我什至注释掉了 ApplicationsHost.config 文件中的所有“处理程序”。
使用 VS2012 Premium 和 IIS Express(我假设它是版本 8)。我也尝试了 VS 开发服务器,但这也给了我相同的结果。
我没有想法。任何帮助将不胜感激。
谢谢李
【问题讨论】:
标签: c# rest asp.net-web-api handler