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 アクションが機能しません。