【发布时间】:2016-11-16 21:42:37
【问题描述】:
我正在尝试在 ASP.NET MVC 中创建一个 api。不幸的是,我遇到了两个 HTTP 请求的问题:DELETE 和 PUT
[ActionName("Index")]
[HttpGet]
public String Index()
{
return "get";
}
[ActionName("Index")]
[HttpPost]
public String IndexPost()
{
return "create";
}
[ActionName("Index")]
[HttpPut]
public String IndexPut()
{
return "update";
}
[ActionName("Index")]
[HttpDelete]
public String IndexDelete()
{
return "delete";
}
当我尝试发送 DELETE 或 PUT 然后浏览器返回 IIS 10.0 详细错误 - 404.0 - 未找到时,GET 和 POST 请求运行良好。
<system.webServer>
<modules>
<remove name="WebDAVModule"/>
</modules>
<handlers>
<remove name="WebDAV" />
<remove name="ExtensionlessUrl-Integrated-4.0" />
<add name="ExtensionlessUrl-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,DELETE,PUT" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
【问题讨论】:
-
确保您已将
handlers添加到网络配置文件中 -
请在问题中添加网络配置文件的
<add name="ExtensionlessUrlHandler..部分 -
我在我的 Web.config 中找不到
<add name="ExtensionlessUrlHandler.. -
不幸的是,我改变了情况仍然是同一个帖子,并且得到工作删除和放置不起作用。
-
尝试删除旧的并添加此
<system.webServer> <handlers> <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> </handlers> </system.webServer>