6

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

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

应用程序本身很复杂,因此似乎是应用程序正在做的事情导致了这种情况,但是我不知道是什么。

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

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

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

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

4

3 回答 3

4

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

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

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

于 2010-07-20T01:19:54.293 回答
2

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

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

于 2013-08-07T20:07:02.137 回答
0

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

于 2013-11-19T16:51:43.747 回答