错误:无法评估表达式,因为代码已优化

DNR*_*DNR 12 c# asp.net master-pages server.transfer

我在我的asp.net应用程序中看到错误

"无法评估表达式,因为代码已经过优化,或者本机框架位于调用堆栈之上."

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

在搜索SO之后,我看到大多数类似的帖子都涉及response.redirect.我的代码使用的是server.transfer,我的应用程序也在使用母版页.

我该如何解决这个问题?

更新:由于某种原因,发生此错误是我也使用Response.Redirect.不幸的是我无法使用Server.Execute,因为Server.Execute将调用页面调用到最后.

Tro*_*roy 13

你会收到一个错误,但是下面的代码块会捕获它,你可以继续你的生活.

试试这个:

using System.Threading.ThreadAbortException;

catch(ThreadAbortException ex)
{
    throw;
}
Run Code Online (Sandbox Code Playgroud)


小智 10

您描述的问题似乎是设计如下所示:

http://support.microsoft.com/kb/312629/EN-US/

使用Server.Execute应该解决问题

  • @DotNetRookie微软没有解决它的问题,只将它们标记为"已知问题"...... :) (8认同)