我在 IIS 7.5 上运行 ASP.NET Web API 应用程序。当我尝试使用 PUT 动词访问任何内容时,我收到 500 错误。
当我在本地机器上使用 IIS Express 运行相同的代码时,我得到了我期望的响应。
值得注意的是,我收到了405 Method not found
响应,因此我删除了 IIS 模块中的 WebDav 引用。
我正在使用 Visual Studio 在您首次创建项目时为您提供的控制器:
public class ValuesController : ApiController
{
// GET api/values
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
// GET api/values/5
public string Get(int id)
{
return "value";
}
// POST api/values
public HttpResponseMessage Post()
{
return Request.CreateResponse(HttpStatusCode.Ambiguous);
}
// PUT api/values/5
[System.Web.Http.AcceptVerbs("PUT")]
public HttpResponseMessage Put()
{
return Request.CreateResponse(HttpStatusCode.SeeOther);
}
// DELETE api/values/5
public void Delete(int id)
{
}
}
(有几个变化)。当我运行 POST/GET 操作时,我得到了我期望的响应,但 PUT 没有工作。