【问题标题】:Receiving "Path 'OPTIONS' is forbidden." Exception in ASP.NET website接收“路径 'OPTIONS' 被禁止。” ASP.NET 网站中的异常
【发布时间】:2011-02-18 16:04:37
【问题描述】:

我收到错误 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 文件有关..

【问题讨论】:

  • 你有堆栈跟踪吗?你在某处有OPTIONS 目录吗?服务器是否对其具有正确的权限?
  • 您也可以考虑输入elmah。这样您就可以在错误发生时获得完整的错误详细信息。

标签: asp.net http exception httphandler


【解决方案1】:

OPTION 是“Microsoft Data Access Internet Publishing Provider Protocol Discovery”(MS Office 的一部分)使用的动词,用于在用户从 Office 应用程序内部打开 URL 时发出请求。

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

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

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

【讨论】:

  • +1。我收到了这个错误,但在不同的情况下 - 我从在 Cassini 中运行的网页复制(在 Visual Studio 中调试)并粘贴到 Word 2010 文档中时遇到了这个错误。
  • 我有同样的问题,但添加行没有帮助。我仍然收到 OPTIONS 错误。
  • 您将从所有办公文档类型中获取此信息,因此您可能还需要添加 *.doc 等,否则您可能仍会收到错误
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

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

    fileName 必须是 fileName.xls

    【讨论】:

      【解决方案4】:

      当您尝试从 localhost 打开 .xls 时会发生此错误。如果是 IIS,它不会抛出任何错误。

      你可以使用

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

      在 web.config 中。

      【讨论】:

      • 它不仅发生在本地主机上
      【解决方案5】:

      这似乎对我很有效:

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

      【讨论】:

        【解决方案6】:

        这可能是您系统上的权限。为了获得更多细节,google up 的搜索词是“禁止路径”—— OPTIONS 部分是特定于您的应用程序的字符串。

        更好的是,稍微绞尽脑汁,试着想出你的应用程序的一部分,它试图访问具有该名称的 URL 或文件路径。

        【讨论】:

        • 糟糕,我想我必须纠正自己。看起来它指的是一个名为 OPTIONS 的 HTTP 动词。请参阅以下知识库文章:msdn.microsoft.com/en-us/library/bya7fh0a.aspx 看来您应该能够通过更改配置来解决此问题。
        • 具有讽刺意味的是,当您在 Google 上搜索 "Path is forbidden" 时,此页面的点击率最高。
        猜你喜欢
        • 1970-01-01
        • 2010-12-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-28
        • 2016-05-12
        相关资源
        最近更新 更多