【问题标题】:Diagnosing why WebResource.axd requests are empty诊断 WebResource.axd 请求为空的原因
【发布时间】:2010-07-19 05:42:43
【问题描述】:

我发现对于一个特定的 Web 应用程序,对 WebResource.axd 的请求正在返回一个完全空白的页面。 (将链接复制并粘贴到新的浏览器窗口会导致完整的空响应文档)

IIS 日志显示对 WebResource.axd 的请求成功(HTTP 状态代码 200)

应用程序本身很复杂,因此很可能是应用程序正在执行的操作导致了这种情况,但我不知道是什么原因。

我可以采取哪些额外的调试步骤来找出这些请求失败的原因,以及我应该在哪里寻找应用程序特定行为可能以这种方式影响 WebResource.axd 的地方?

到目前为止我尝试过的事情:

  • 在 IIS 中创建指向同一目录的新虚拟目录会产生相同的结果(空 WebResource.axd 文档)
  • 创建一个全新的独立空白页并将其放置在此目录中会产生相同的结果。
  • 如果我在 IIS 中创建一个指向不同文件夹的新虚拟目录,则空白页将按预期工作。
  • 在工作目录/损坏目录之间交换 web.config 文件似乎没有影响。

这是在运行 IIS 5.1 的 Windows XP 机器上

【问题讨论】:

    标签: webresource.axd


    【解决方案1】:

    事实证明,问题在于我在 Global.asax 的 Application_PreRequestHandlerExecute 方法中应用的 HttpResponse 过滤器。我一般将过滤器应用于所有请求 - 即使过滤器未更改 WebResouce.axd 的内容,这仍然会导致问题。

    以下链接帮助我更详细地描述了这一点:

    解决方案是跳过为 WebResouce.axd 应用过滤器。

    【讨论】:

      【解决方案2】:

      如果您碰巧使用的是 Visual Studio 2013 Preview,这是一个已知问题: https://connect.microsoft.com/VisualStudio/feedback/details/792689/webresource-axd-returns-a-200-ok-empty-response

      (显然这不适用于 OP,但适用于来自 google 的任何人)

      【讨论】:

        【解决方案3】:

        我没有使用 Application_PreRequestHandlerExecute,而是在 Application_BeginRequest 中添加了 OutputFilterStream。这导致 WebResource.axd 响应返回相同的问题,状态代码为 200,但响应为空。

        【讨论】:

          猜你喜欢
          • 2011-12-31
          • 1970-01-01
          • 1970-01-01
          • 2010-10-01
          • 1970-01-01
          • 2015-10-06
          • 2013-08-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多