禁止接收“路径选项”。“ ASP.NET网站中的例外情况

时间:2010-05-12 14:29:09

标签: asp.net http exception httphandler

我收到错误System.Web.HttpException: Path 'OPTIONS' is forbidden.,因为我们将网站移至新的服务器设置。我无法重新创建错误,但我每天至少收到几次此类例外的电子邮件。可能导致这种情况的任何想法以及我如何解决它?

编辑: 堆栈跟踪:

at System.Web.HttpMethodNotAllowedHandler.ProcessRequest(HttpContext context)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

没有名为OPTIONS的目录或文件,我相信所有权限都是正确的。我找到了一些关于EXCEL从网络服务器获取数据的可能链接的信息,但没有完整的解释如何或正在发生的事情。

再次编辑: 似乎这与在Internet Explorer中打开的Excel文件有关..

6 个答案:

答案 0 :(得分:18)

OPTION是“Microsoft数据访问Internet发布提供程序协议发现”(MS Office的一部分)使用的动词,用于在用户从办公室内部应用程序打开URL时发出请求。

您应该可以通过在Word / Excel 2003及更高版本中打开文件>打开并指定文件的完整URL来重新创建问题。或者,通过在办公室文档中放置服务器上excel文件的链接并单击它。

您可以通过将此添加到您的web.config文件来修复它,并为每种文件类型添加其他行:

<httpHandlers>
  <add verb="*" path="*.xls" type="System.Web.StaticFileHandler" />
  <add verb="*" path="*.xlsx" type="System.Web.StaticFileHandler" />
</httpHandlers>

答案 1 :(得分:2)

您是否收到任何用户错误报告或类似报告。 OPTIONS是一个http动词,用于查找服务器的功能。听起来您的新Web服务器未配置为允许此动词,可能出于安全原因。来自浏览器的普通Web请求不会使用此动词,并且恶意软件/机器人扫描Web服务器通常会使用它来获取漏洞。

答案 2 :(得分:0)

当我在尝试从ASP.Net网页发送.xls文件时遇到此确切错误时,原因是我在此处省略了文件扩展名

Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName);
Response.ContentType = "application/vnd.ms-excel";

fileName需要fileName.xls

答案 3 :(得分:0)

当您尝试从localhost打开.xls时,会发生此错误。在IIS的情况下,它不会抛出任何错误。

您可以使用

<httpHandlers>
  <add verb="*" path="*.xls" type="System.Web.StaticFileHandler" />
  <add verb="*" path="*.xlsx" type="System.Web.StaticFileHandler" />
</httpHandlers>
web.config中的

答案 4 :(得分:0)

这似乎对我有用:

<httpHandlers>
  <add verb="GET,HEAD,POST" path="*" type="System.Web.DefaultHttpHandler" validate="true"/>
  <add verb="OPTIONS" path="*" type="System.Web.StaticFileHandler" />
</httpHandlers>

答案 5 :(得分:-2)

这可能是您系统的权限。为了获得更多细节,google up的搜索词是“Path is is off” - OPTIONS部分是一个特定于你的应用程序的字符串。

更好的是,稍微抬起你的大脑并尝试考虑尝试访问具有该名称的URL或文件路径的应用程序的一部分。