Error: Unable to evaluate expression because the code is optimized

DNR picture DNR · Jun 11, 2012 · Viewed 43k times · Source

I am getting an error in my asp.net app that reads

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

protected void btnCustomerProfile_Click(object sender, EventArgs e)
{
    try
    {
        Server.Transfer("CustomerProfile.aspx");
    }
    catch (Exception ex)
    {
        Response.Write(ex.ToString());
    }
    finally
    { }
}

After searching SO, I see most of the similar posts involve response.redirect. My code is using server.transfer and my application is also using Master Pages.

How can I resolve this issue?

Update: For some reason, this error occurs is I use Response.Redirect as well. Unfortunately I cannot use Server.Execute, because Server.Execute calls the calling page towards the end.

Answer

Troy picture Troy · Jun 21, 2012

You will get an error, but the code block below will trap it and you can get on with your life.

Try this:

using System.Threading.ThreadAbortException;

catch(ThreadAbortException ex)
{
    throw;
}