1

可能重复:
ASP.NET Web API 仅在某些服务器上为 PUT 返回 404

我创建了一个新的 ASP.Net MVC4 解决方案来使用新的 Web API 功能。我有一个从 ApiController 继承的控制器,并且我正在使用AttributeRouting 项目(也许最好在这里解释)来设置我的路由。

我为 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。

4

0 回答 0