BUG:由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值    

 

 

症状:

如果您使用的Response.End、 Response.RedirectServer.Transfer方法,则ThreadAbortException会发生异常。您可以使用try-catch语句来捕捉此异常。

原因:

Response.End方法结束页执行,并将执行转移到应用程序的事件管道中的Application_EndRequest事件。不执行的Response.End的代码行。
因为这两种方法在内部调用Response.End , Response.RedirectServer.Transfer方法中将出现此问题。

解决方案:

要解决此问题,请使用下列方法之一:

  • 对于Response.End,调用HttpContext.Current.ApplicationInstance.CompleteRequest方法,而不是Response.End绕过到Application_EndRequest事件的代码执行。

  • 对于Response.Redirect,使用Response.Redirect (bool endResponse 字符串 url)传递false以取消内部调用Response.EndendResponse参数的重载。例如:

      Response.Redirect ("nextpage.aspx", false);       


    如果您使用此替代方法,请执行下面Response.Redirect的代码。

  • 对于Server.Transfer,而是使用Server.Execute方法。