在IIS 8.5中,Rest不允许PUT:错误405。

问题描述 投票:1回答:2

我在.Net中有一个完整的web服务。当我们用windows 7和IIS 7在PC上测试PUT时,它工作正常。

当我们测试的Web服务在PC与Windows 8和IIS 8.5我们得到一个405状态代码。这是Fiddler的结果

enter image description here

编辑这是applicationHost.config中关于 ExtensionlessUrlHandler-Integrated. 我没有一个ExtensionlessUrl-Integrated。

enter image description here

我想这应该是IIS的问题,有谁知道如何解决这个问题吗?

c# rest iis http-status-code-405
2个回答
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动词不允许 - IIS 8。


1
投票

这主要是由于WebDAV安装到IIS服务器造成的。

只需在你的系统中添加以下XML块 web.config 档案

 <system.webServer>
    <modules>
    <remove name="WebDAVModule" />
    </modules>
  </system.webServer>
© www.soinside.com 2019 - 2024. All rights reserved.