可能重复:
ASP.NET Web API returns 404 for PUT only on some servers
我创建了一个新的ASP.Net MVC4解决方案,以使用新的Web API功能。我有一个继承自ApiController的控制器,我正在使用the AttributeRouting project(也许是最好的解释here)来设置我的路线。
我为POST设置了以下方法:
[POST("bank/{id}")]
public void Post(int id, BankRequest bank)
{
// Create a new Bank here
}
从Fiddler调用此函数时,我可以在Visual Studio 2012中调试它,并看到一切都按预期工作。我可以看到id是正确的,并且json会自动序列化到我的BankRequest对象中。我觉得一切都很好。 GET也按预期工作。
然后我有一个类似的PUT方法:
[PUT("bank/{id}")]
public void Put(int id, BankRequest bank)
{
// Update a Bank here
}
问题是我在调用它时收到HTTP 404 Not Found消息。我所做的就是发送完全相同的url和json,只需从POST更改为PUT。我在Fiddler所做的就是从POST变为PUT,所以我的url和json都被保留了下来。当我切换回POST时,它也可以正常工作。我不知道是不是花哨的AttributeRouting不起作用,或者其他东西是不正确的。
有谁知道为什么?
请注意,我正在设置其他人定义的API,因此我必须支持PUT。