“PUT”方法在IIS7.5中“405方法不允许”怎么办?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (38)

我使用WebClient类型上传*.CAB文件到我的服务器。在服务器端,我注册了一个HTTP处理程序*使用PUT方法的.CAB文件如下所示:

 <add name="ResultHandler" path="*.cab" verb="PUT" type="FileUploadApplication.ResultHandler" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode" />

但是我总是得到405不允许错误,响应说允许的方法如下:

Headers = {Allow: GET, HEAD, OPTIONS, TRACE
Content-Length: 1293
Content-Type: text/html
Date: Fri, 27 May 2011 02:08:18 GMT
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET}

即使我显式地为我的Web应用程序允许IIS请求筛选中的PUT方法,同样的错误仍然存在。

目前,我认为这是一个与IIS相关的问题。希望有人能给我一点启示。

谢谢你。

提问于
用户回答回答于

我启用了失败的请求跟踪,并获得了以下信息:

 <EventData>
  <Data Name="ContextId">{00000000-0000-0000-0F00-0080000000FA}</Data>
  <Data Name="ModuleName">WebDAVModule</Data>
  <Data Name="Notification">16</Data>
  <Data Name="HttpStatus">405</Data>
  <Data Name="HttpReason">Method Not Allowed</Data>
  <Data Name="HttpSubStatus">0</Data>
  <Data Name="ErrorCode">0</Data>
  <Data Name="ConfigExceptionInfo"></Data>
 </EventData>

所以,我从IIS卸载了WebDAVModule,现在一切都很好~

用户回答回答于

此错误通常是由试图处理此类请求的WebDAV模块造成的。下面是一个配置示例:

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

扫码关注云+社区

领取腾讯云代金券