IIS中的自定义webdav实现,在PROPFIND上提供405

时间:2011-09-22 08:45:34

标签: iis webdav

我使用HttpHandler创建了一个自定义webdav实现,通过webdav协议将数据库中的文件提供给客户端。 在我的VS开发服务器Cassini上,我可以毫无问题地访问它。 现在我正在尝试在IIS中调试此站点,但这不起作用。 我卸载了IIS 7.5 Webdav模块。

我的web.config的一些片段:

<system.web>
...
<httphandlers>
 <add type="Test.WebDAVHandler, Test" verb="*" path="*"></add>
</httphandlers>
...
</system.web>
<system.webserver>
  <modules runAllManagedModulesForAllRequests="true">
      <remove name="WebDAVModule">
  </remove>
</modules>
  <validation validateIntegratedModeConfiguration="true">
<defaultdocument enabled="true">
   <files>
    <add value="example.aspx"></add>
   </files>
  </defaultdocument>
  <handlers accessPolicy="Read,Write,Execute,Script">
      <remove name="WebDAV">
   <add name=".NET Runtime" verb="*" path="*" preCondition="classicMode,runtimeVersionv2.0,bitness64" requireAccess="None" resourceType="Unspecified" scriptProcessor="C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" modules="IsapiModule">
  </add>
</handlers>

 </validation>
</system.webserver>

当我使用Windows 7的Map network drive选项连接到此站点并使用Fiddler检查请求时,我看到经过一些身份验证后,客户端执行以下请求: 选项localhost / explorer并获得以下(缩短的)响应。

HTTP / 1.1 200确定

允许:OPTIONS,TRACE,GET,HEAD,POST

我在这里缺少一些允许的动词,比如PROPFIND。

客户端的下一个请求是PROPFIND。 服务器以不允许的405方法响应。 我查看了请求跟踪,DefaultDocumentModule导致了此错误。 当我禁用此模块时,DirectoryListingModule会导致此405。

有没有人知道如何解决这个问题,以便我可以将webdav用于我的自定义处理程序?

0 个答案:

没有答案