问题
当我尝试从 IIS7 网站的默认页面发出 AJAX 部分更新请求(使用 UpdatePanel 控件)时,它失败了 - 它没有返回要更新的 html,而是返回整个页面,然后导致 MS AJAX Javascript 抛出一个解析狗屎。
疑似原因
我已将原因缩小到两个问题 - 当我注册了某个自定义 http 模块时,向默认页面发出 AJAX 请求。对http://localhost的部分呈现请求将失败,但对http://localhost/default.aspx的部分呈现请求将正常工作。另外,如果我在自定义 HttpModule 中删除以下行:
_application.PreRequestHandlerExecute += OnPreRequestHandlerExecute;
AJAX 部分渲染将正常工作。奇怪吧?
另一件奇怪的事情...... 如果我查看 trace.axd,我可以看到当部分呈现请求失败时,会为一个部分呈现请求记录两个 POST 请求 - 其中一个 default.aspx 页面成功执行(跟踪信息如因为 page_load 被记录)但没有产生内容,第二个似乎没有实际执行(没有记录跟踪信息)但产生内容(HTTP_CONTENT_LENGTH 大于 0)。
请帮忙! 如果对 HTTP 模块或 MS AJAX Http 模块有很好的了解的人可以解释为什么会发生这种情况,我将不胜感激。事实上,如果请求 url 是“/”,那么明显的工作就是重定向到 default.aspx,但我真的很想了解为什么会发生这种情况。