我在.Net中有一个restfull Web服务。当我们在装有Windows 7和IIS 7的PC上测试PUT时,它工作正常。
当我们在使用Windows 8和IIS 8.5的PC中测试Web服务时,我们获得405状态代码。这是Fiddler的结果
修改
这是关于ExtensionlessUrlHandler-Integrated
的applicationHost.config部分。我没有ExtensionlessUrl-Integrated
我认为这是一个IIS问题,有谁知道如何解决这个问题? 提前致谢
答案 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>