由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值。
使用Response.End时发生异常:
由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值。
经查找:
原文地址:http://support.microsoft.com/kb/312629/
参考:http://www.dwz.cn/vsP8b
我的解决方法是:捕获ThreadAbortException异常,并不做处理。
如果使用 Response.End,Response.Redirect 或 Server.Transfer,ThreadAbortException 发生
如果您使用Response.End/u3001 Response.Redirect或Server.Transfer方法,将引发ThreadAbortException 异常/u3002您可以使用try-catch语句来捕捉此异常。
Response.End方法结束页执行和将执行切换到应用程序的事件管道中的Application_EndRequest事件。Response.End之后的代码行不会被执行。
因为这两种方法都会内部调用Response.End , Response.Redirect和Server.Transfer的方法中发生此问题。
若要变通解决此问题,请使用下列方法之一:
- 为Response.End,调用HttpContext.Current.ApplicationInstance.CompleteRequest方法,而不是Response.End能够绕过到Application_EndRequest事件的代码执行。
- 对于Response.Redirect,使用重载,通过假要取消内部调用Response.End的endResponse参数的Response.Redirect (url 字符串、 布尔值 endResponse) 。例如:
Response.Redirect ("nextpage.aspx", false);
- 对于Server.Transfer,而是使用Server.Execute方法。