路径'PROPFIND'是被禁止的?

时间:2009-11-18 15:46:21

标签: asp.net asp.net-mvc http iis-6

我收到以下错误但在它正在发生的上下文中似乎没有意义:

信息 路径'PROPFIND'被禁止。 堆栈跟踪 在System.Web.HttpMethodNotAllowedHandler.ProcessRequest(HttpContext context)处于System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean& completedSynchronously)的System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()中

谷歌已经发现了与我的应用程序似乎没有任何关系的结果(这是IIS6上的asp.net MVC)。该网站运行正常,但我想尝试抓住并处理此错误。感谢。

4 个答案:

答案 0 :(得分:6)

好吧我觉得我们找到了答案,显然这很明显,但我不是系统人员,所以这是我的借口。 ;)在IIS 6中使用MVC时,我们实现了Wildcard Mapping来获取站点的漂亮的无扩展URL。但是我理解它的方式,通过wilcard映射启用它只是处理所有请求,就好像它们用于ASP.net,包括由盲人探测48klocs提到的漏洞的人发布的这些WebDAV动词。

答案 1 :(得分:3)

是公共网络服务器吗?快速谷歌搜索似乎表明有a DOS attack involving PROPFIND and WebDAV。如果它是公开的,那么你就会从喷射和祈祷的驾驶攻击者那里获取日志。如果它是内部的,你会有更大的头脑。

答案 2 :(得分:1)

这可能是两个问题之一:

  1. PROPFIND未在ASP.NET脚本图的网站上定义为允许的动词。
  2. 服务器正在运行UrlScan,但不允许PROPFIND。查看[AllowVerbs]
  3. [DenyVerbs]c:\Windows\System32\InetSrv\urlscan\UrlScan.ini部分

答案 3 :(得分:1)

我们已经看到了很多,并且已经确定其中许多都来自Microsoft Office产品。特别是Microsoft Office。

有关解释,请参阅“How documents are opened from a Web site in Office 2003”。

通过在web.config中为这两个动词添加DefaultHttpHandler的映射,我能够获得一些简单的解脱:

<configuration>
  <system.web>
    <httpHandlers>
      <add verb="*" path="*.mvc" validate="false" type="System.Web.Mvc.MvcHttpHandler, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
      <add path="*" verb="OPTIONS, PROPFIND" type="System.Web.DefaultHttpHandler" />
    </httpHandlers>
  </system.web>
</configuration>

这会导致“OPTIONS”请求成功,并导致“PROPFIND”返回“501 Not Implemented”状态。

19次失败之后,MS Word 2007最终决定它可以使用“GET”请求来检索文件,并且可以正常运行(该文件在合法地提供服务)。


一项小小的研究表明,StaticFileHandler的工作效果更好。只要请求针对的是实际资源,它就会为OPTIONS和PROPFIND谓词返回200 OK,以及看似有效的数据。当Word探测文件夹本身时,这将返回404 Not Found。