Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 错误:无法计算表达式,因为代码已优化_C#_Asp.net_Master Pages_Server.transfer - Fatal编程技术网

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

C# 错误:无法计算表达式,因为代码已优化,c#,asp.net,master-pages,server.transfer,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(

我的asp.net应用程序中出现一个错误,内容为

“无法计算表达式,因为代码已优化或本机框架位于调用堆栈顶部。”

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

catch(ThreadAbortException ex)
{
    throw;
}
经过搜索,我发现大多数类似的帖子都涉及response.redirect。我的代码使用server.transfer,我的应用程序也使用母版页

我如何解决这个问题


更新:由于某种原因,在我使用响应时发生此错误。同时重定向。很遗憾,我无法使用Server.Execute,因为Server.Execute会在接近尾声时调用调用页。

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


使用
Server.Execute
应该可以解决问题

您是否尝试过用
response.redirect()替换
服务器.transfer


您将得到一个错误,但下面的代码块将捕获它,您可以继续生活

试试这个:

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

catch(ThreadAbortException ex)
{
    throw;
}

当我使用MS Test测试多线程应用程序时,我遇到了这个问题

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


当teat clean up方法杀死对象时,这些线程被中止,并显示上述消息。

您能发布引发异常的代码段吗?嗯。。。在我的例子中,问题是由
Response.End
引起的。。。但是查看您的代码很难说出这个问题的原因…链接上的信息表明.NET1.0和1.1框架。我使用的是4.0框架。我认为这个问题会在8年后得到解决。@DotNetRookie微软没有解决它的问题,只是将它们标记为“已知问题”…)server.execute的问题是它返回到调用页面。因为我现在有做server.transfer的代码,我想看看我是否能坚持同样的编码策略。生成的异常是否为ThreadAbortException?还有一个内部异常消息,可能值得将异常写入日志文件,以确保调试器没有格式化消息应用程序当前有使用server.transfer的代码(代码由不再在此的开发人员完成),因此我需要与当前体系结构保持一致。