首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >无法计算表达式,因为代码已优化或本机框架位于调用堆栈的顶部

无法计算表达式,因为代码已优化或本机框架位于调用堆栈的顶部
EN

Stack Overflow用户
提问于 2010-01-11 19:29:26
回答 12查看 287.2K关注 0票数 144

我得到了一个错误:

无法计算表达式,因为代码已优化或本机框架位于调用堆栈的顶部。

我在repeater的itemcommand事件中重定向到了一个新页面。错误发生在以下行:

代码语言:javascript
复制
string url = "~/Galleries/AlbumImageList.aspx?UId=" + this.UserId.ToString() + "&AlbumId=" + e.CommandArgument.ToString();
Response.Redirect(url);

有谁能帮帮我吗?有什么问题吗?_COMPlusExceptionCode是-532459699

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2010-01-11 19:50:20

Response 的第二个参数设为false,如下所示。

代码语言:javascript
复制
Response.Redirect(url,false);
票数 125
EN

Stack Overflow用户

发布于 2010-10-01 19:39:52

代码语言:javascript
复制
Request.Redirect(url,false);

false指示当前页面的执行是否应该终止。

票数 162
EN

Stack Overflow用户

发布于 2013-08-07 21:15:39

分辨率

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

对于

  • ,请调用方法而不是Response.End以绕过对Response.End.事件的代码执行。对于
  • ,请使用重载E113),它为E117 E117E218参数传递了false E216以取消对suppress的内部调用例如:Response.Redirect ("nextpage.aspx", false);如果使用此解决方法,Response.Redirect后面的代码是executed.
  • For ,请改用方法。

症状

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

原因

Response.End方法结束页面执行,并将执行转移到应用程序的事件管道中的Application_EndRequest事件。不执行Response.End后面的代码行。

此问题出现在Response.Redirect和Server.Transfer方法中,因为这两个方法都在内部调用Response.End。

状态

此行为是故意设计的。

属性

文章ID: 312629 -上次审查:2012年8月30日-修订版: 4.0

适用于的

2.0

  • Microsoft 1.1

  • Microsoft
  • ASP.NET 4.5
  • Microsoft ASP.NET 4
  • Microsoft ASP.NET 1.0

关键字: kbprb异常处理kbprb KB312629

来源: PRB: ThreadAbortException Occurs If You Use Response.End, Response.Redirect, or Server.Transfer

票数 68
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2041482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档