我的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,我的应用程序也在使用母版页。
如何解决此问题?
更新:由于某种原因,发生此错误的原因是我也使用了Response.Redirect。不幸的是我无法使用Server.Execute,因为Server.Execute会在最后调用调用页面。
答案 0 :(得分:13)
你会收到一个错误,但下面的代码块会陷入错误,你可以继续生活。
试试这个:
using System.Threading.ThreadAbortException;
catch(ThreadAbortException ex)
{
throw;
}
答案 1 :(得分:10)
答案 2 :(得分:2)
您是否尝试将server.transfer
替换为response.redirect()
?
答案 3 :(得分:2)
当我使用MS-Test测试多线程应用程序的工作时,我遇到了这个消息。
我发现原因是因为测试主线程已经结束并初始化了对象的清理,而其他创建的无限运行线程仍在工作。
由于乳头清理方法会杀死对象,这些线程将被中止,显示上述信息。