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

本文关键字:因为 代码 优化 表达式 计算 错误 | 更新日期: 2023-09-27 18:36:53

我在 asp.net 应用程序中收到错误,显示

"无法计算表达式,因为代码已优化或本机帧位于调用堆栈之上。"

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

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

如何解决此问题?

更新:由于某种原因,发生此错误是我也使用响应重定向。不幸的是,我无法使用Server.Execute,因为Server.Execute在最后调用调用页面。

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

你会得到一个错误,但下面的代码块会困住它,你可以继续你的生活。

试试这个:

using System.Threading.ThreadAbortException;
catch(ThreadAbortException ex)
{
    throw;
}

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

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

使用Server.Execute应该解决问题

您是否尝试过用response.redirect()替换server.transfer

服务器.传输 VS 响应.重定向

我在使用 MS-Test 测试多线程应用程序的工作时遇到了这条消息。

我发现这样做的原因是因为测试主线程结束并初始化了对象的清理,而其他创建的旨在无限运行的线程仍在工作。

当奶头清理方法杀死对象时,这些线程会中止,显示上面的消息。

相关文章: