我的应用程序的prod环境中有一种奇怪的行为。 Prod env有3台服务器,在其中一台服务器中,页面重定向导致Application_EndRequest事件被触发;其他两个按预期工作。我想避免在页面重定向上触发EndRequest事件。我正在使用Response.Redirect(url)。我尝试使用Response.Redirect(url,false); HttpContext.Current.ApplicationInstance.CompleteRequest();它们都会触发Endrequest事件。我不确定它是否特定于该服务器。
真正的问题是在执行Response.Redirect期间应用程序重新启动时重置关键会话变量会导致应用程序出错。有没有办法找到这个问题的真正原因?我试图解决这两天,但没有成功。
我的产品是64位。
这方面有人可以提供帮助吗?非常感谢您的帮助。谢谢。 〜/ Ananth
答案 0 :(得分:1)
除非我误读了文档(这是可能的),否则我会说它按照设计运行。
Redirect调用End,在完成时引发ThreadAbortException异常。
和
HttpResponse.End Method
将所有当前缓冲的输出发送到客户端,停止执行页面,并引发EndRequest事件。
和
HttpApplication.EndRequest Event
当ASP.NET响应请求时,作为HTTP管道执行链中的最后一个事件发生。
你说“重定向到这里”。 ASP.NET将适当的标头写入流。请求完成,EndRequest应该执行。