【问题标题】:IIS 10.0 Detailed Error - 404.0 for [httpDelete] [httpPut]IIS 10.0 详细错误 - [httpDelete] [httpPut] 的 404.0
【发布时间】: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 添加到网络配置文件中
  • 请在问题中添加网络配置文件的&lt;add name="ExtensionlessUrlHandler.. 部分
  • 我在我的 Web.config 中找不到 &lt;add name="ExtensionlessUrlHandler..
  • 不幸的是,我改变了情况仍然是同一个帖子,并且得到工作删除和放置不起作用。
  • 尝试删除旧的并添加此&lt;system.webServer&gt; &lt;handlers&gt; &lt;remove name="ExtensionlessUrlHandler-Integrated-4.0" /&gt; &lt;add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /&gt; &lt;/handlers&gt; &lt;/system.webServer&gt;

标签: asp.net-mvc httprequest


【解决方案1】:

Web.config 中的此更改解决了我的问题

 <handlers>
  <remove name="WebDAV"/>
  <remove name="OPTIONSVerbHandler"/>
  <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
  <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
  <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
  <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
  <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
  <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
  <add name="OPTIONSVerbHandler" path="*" verb="OPTIONS" modules="ProtocolSupportModule" requireAccess="None" responseBufferLimit="4194304" />
</handlers>

【讨论】:

  • 我发现我只需要“ExtensionlessUrlHandler-Integrated-4.0”值
  • 嗨。我曾尝试像您一样配置我的 Web.config,但仍然无法正常工作。您能否将该文件发布到某个地方,以便我快速查看一下?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-03
  • 2018-06-23
  • 1970-01-01
  • 1970-01-01
  • 2016-07-10
  • 2019-02-09
相关资源
最近更新 更多