在POST请求中使用Web API接收不允许的405方法。我该如何解决?

时间:2014-09-11 18:03:23

标签: asp.net-web-api

我的操作方法在控制器类中具有以下签名:

[RoutePrefix("api/fun")]
public class FunController : ApiController
{

  [HttpPost]
  [Route("domagic")]
  public HttpResponseMessage PerformMagic(string email)
  {
      ...
  }
}

当我使用Chrome中的PostMan或我写的iOS客户端发帖时,我得到405方法不允许。我发布到/ api / fun / domagic。将请求类型更改为GET,给我一个错误,实际上告诉我Web API正在映射到不同的方法。

在我的WebApiConfig中,我致电config.MapHttpAttributeRoutes();。在我的Web.config中,我删除所有system.webServer / handler,然后添加以下处理程序。 (这是File-> New Project之后的所有样板默认内容)

<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />

我将以下内容添加到system.webServer / modules:

<remove name="WebDAVModule"/>

从我的所有搜索中,这个设置应该有效,但它没有。 POST总是失败。

我需要做些什么才能让它发挥作用?

0 个答案:

没有答案