我在.Net中有一个完整的web服务。当我们用windows 7和IIS 7在PC上测试PUT时,它工作正常。
当我们测试的Web服务在PC与Windows 8和IIS 8.5我们得到一个405状态代码。这是Fiddler的结果
编辑这是applicationHost.config中关于 ExtensionlessUrlHandler-Integrated
. 我没有一个ExtensionlessUrl-Integrated。
我想这应该是IIS的问题,有谁知道如何解决这个问题吗?
你必须在你的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。
这主要是由于WebDAV安装到IIS服务器造成的。
只需在你的系统中添加以下XML块 web.config
档案
<system.webServer>
<modules>
<remove name="WebDAVModule" />
</modules>
</system.webServer>