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

使用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.RedirectServer.Transfer方法,将引发ThreadAbortException 异常/u3002您可以使用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.EndendResponse参数的Response.Redirect (url 字符串、 布尔值 endResponse) 。例如:
      Response.Redirect ("nextpage.aspx", false);
    						
    如果您使用此替代方法,遵循Response.Redirect的代码执行。
  • 对于Server.Transfer,而是使用Server.Execute方法。

 

转载于:https://www.cnblogs.com/xiaoyintao/p/4076630.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值