Saturday, January 03, 2009

Unable to evaluate expression because the code is optimized or a native frame is on top of the call stack


Few days ago, i come across with this strange error. 
"Unable to evaluate expression because the code is optimized or a native frame is on top of the call stack."
When I debugged my code i found that this error message is coming due to following statment.
Response.Redirect(url); 

I Used the following statement will fix the error.  
Response.Redirect(url,false);
 

Response.Redirect internally calls to Response.End method due to this threadabort exception occurs. The Response.End method ends the page execution and shifts the execution to theApplication_EndRequest event in the application's event pipeline. The line of code that follows Response.End is not executed.

To work around this problem, use one of the following methods:

For Response.Redirect, use an overload, Response.Redirect(String url, bool endResponse) that  passes false for the  endResponse parameter to suppress the internal call to Response.End. For example:

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

If you use this workaround, the code that follows Response.Redirect is executed.

For Server.Transfer, use the Server.Execute method instead.

Enjoy......

No comments:

back to top