休息不允许在IIS 8.5中使用PUT:错误405

时间:2015-11-20 19:58:37

标签: c# rest iis http-status-code-405

我在.Net中有一个restfull Web服务。当我们在装有Windows 7和IIS 7的PC上测试PUT时,它工作正常。

当我们在使用Windows 8和IIS 8.5的PC中测试Web服务时,我们获得405状态代码。这是Fiddler的结果

enter image description here

修改 这是关于ExtensionlessUrlHandler-Integrated的applicationHost.config部分。我没有ExtensionlessUrl-Integrated

enter image description here

我认为这是一个IIS问题,有谁知道如何解决这个问题? 提前致谢

2 个答案:

答案 0 :(得分:4)

您必须在ExtensionlessUrl-Integrated-4.0列表中添加PUT动词。进行以下更改IIS实例的applicationhost.config文件。

<add name="ExtensionlessUrl-Integrated-4.0" path="*." verb="GET,HEAD,POST,PUT,OPTIONS,TRACE" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" responseBufferLimit="0" />

您还需要添加您可能允许的任何其他动词,例如DELETE。

请参阅:ASP.NET Web API - PUT & DELETE Verbs Not Allowed - IIS 8

答案 1 :(得分:2)

主要是由于WebDAV安装到IIS服务器上。

只需在您的web.config文件中添加以下XML块

 <system.webServer>
    <modules>
    <remove name="WebDAVModule" />
    </modules>
  </system.webServer>