Rad*_*dhi 142 asp.net response.redirect .net-3.5
我收到错误:
无法计算表达式,因为代码已优化或本机帧位于调用堆栈之上.
我已重定向到repeater的itemcommand事件中的新页面.错误发生在该行:
string url = "~/Galleries/AlbumImageList.aspx?UId=" + this.UserId.ToString() + "&AlbumId=" + e.CommandArgument.ToString();
Response.Redirect(url);
Run Code Online (Sandbox Code Playgroud)
有人可以帮帮我吗?那有什么不对吗?的_COMPlusExceptionCode是- 532459699.
Pra*_*uja 162
Request.Redirect(url,false);
Run Code Online (Sandbox Code Playgroud)
false 指示当前页面的执行是否应该终止.
Rad*_*dhi 125
将第二个参数设为Response false,如下所示.
Response.Redirect(url,false);
Run Code Online (Sandbox Code Playgroud)
Mic*_*res 66
若要解决此问题,请使用下列方法之一:
对于Response.End,调用HttpContext.Current.ApplicationInstance.CompleteRequest() 方法而不是Response.End来绕过代码执行到 Application_EndRequest事件.
对于Response.Redirect,使用一个重载,Response.Redirect(String url,bool endResponse),它为endResponse参数传递false以禁止对Response.End的内部调用.例如:如果使用此变通方法,则执行Response.Redirect之后的代码.
Response.Redirect ("nextpage.aspx", false);对于Server.Transfer,请改用Server.Execute方法.
如果使用Response.End,Response.Redirect或Server.Transfer方法,则会发生ThreadAbortException异常.您可以使用try-catch语句来捕获此异常.
Response.End方法结束页面执行并将执行转移到应用程序的事件管道中的Application_EndRequest事件.不执行Response.End之后的代码行.
Response.Redirect和Server.Transfer方法中会出现此问题,因为两个方法都在内部调用Response.End.
此行为是设计使然.
文章编号:312629 - 最后修改:2012年8月30日 - 修订版:4.0
适用于
- Microsoft ASP.NET 4.5
- Microsoft ASP.NET 4
- Microsoft ASP.NET 3.5
- Microsoft ASP.NET 2.0
- Microsoft ASP.NET 1.1
- Microsoft ASP.NET 1.0
关键词: kbexcepthandling kbprb KB312629
源: PRB:如果您使用Response.End,Response.Redirect或Server.Transfer发生ThreadAbortException
Nic*_*ski 14
在我正在调查的一个错误中,有一个Response.Redirect()并且它在一个意外的位置执行(读取:不适当的位置 - 在成员属性getter方法内).
如果您正在调试问题并遇到" 无法评估表达式... "异常:
Response.Redirect()并生成第二个参数endResponse = false,或这很令人沮丧,因为它似乎在调试器的"逐步执行"到达该位置之前执行Redirect调用.
Man*_*jua 13
请查看此链接以了解此问题背后的原因以及错误的解决方案:
http://support.microsoft.com/kb/312629/EN-US/
Microsoft支持文章:
PRB:如果您使用Response.End,Response.Redirect或Server.Transfer打印打印电子邮件电子邮件发生ThreadAbortException
若要解决此问题,请使用下列方法之一:对于Response.End,请调用HttpContext.Current.ApplicationInstance.CompleteRequest方法而不是Response.End以绕过代码执行到Application_EndRequest事件.
对于Response.Redirect,使用一个重载,Response.Redirect(String url,bool endResponse),它为endResponse参数传递false以禁止对Response.End的内部调用.
例如:Response.Redirect("nextpage.aspx",false);
如果使用此变通方法,则执行Response.Redirect之后的代码.对于Server.Transfer,请改用Server.Execute方法.
| 归档时间: |
|
| 查看次数: |
262002 次 |
| 最近记录: |