题
我发现对于一个特定的Web应用程序请求对WebResource.Axd返回完全空的页面。 (将链接复制和粘贴到新的浏览器窗口中,导致Completley空响应文档)
IIS日志显示对WebResource.AXD的请求成功(HTTP状态代码200)
应用程序本身是复杂的,因此似乎应用程序正在做的事情是造成这一点的事情,但我不知道什么。
我可以采取哪些额外的调试步骤来解决原因,为什么这些请求失败,我应该在哪里寻找应用程序特定行为可能影响WebResource.AxD的地方?
我迄今为止尝试过的东西:
- 在IIS中创建新的虚拟目录指向同一目录给出了相同的结果(空白WebResource.AXD文档)
- 创建一个完全新的indepdent空白页面并将它放在此目录中给出了相同的结果。
- 如果我在IIS中创建一个新的虚拟目录,指向不同的文件夹,那么空白页面按预期工作。
- 在工作/损坏目录之间交换web.config文件似乎没有影响。
这是在运行IIS 5.1的Windows XP机器上
解决方案
事实证明,问题是我在Global.asax中申请的httpresponse过滤器。我一般地将过滤器应用于所有请求 - 即使过滤器对WebResouce.AXD保持不变的内容,仍然造成了问题。
以下链接帮助我详细描述了这一点:
- httpresponse过滤返回nother
- http://daniel-richardson.blogspot.com/2008/11/how-to-apply-filter-to-content-returned.html
解决方案是跳过对WebResouce.AXD的过滤器应用过滤器。
其他提示
如果您碰巧使用Visual Studio 2013预览,这是一个已知问题: https:// connect.microsoft.com / VisualStudio /反馈/详细信息/ 792689 / WebResource-Axd-return-A-200-OK-Expent-Response
(显然这不适用于OP,但对来自Google的任何人)
我未使用application_prequesthandleRexecute,但在application_beginrequest中添加outputfilterstream。这导致WebResource.Axd响应与状态代码200的响应引起了相同的问题,但是空响应。