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を使用しており、私のアプリケーションもマスターページを使用しています。
この問題を解決するにはどうすればよいですか?
pdate:何らかの理由で、Response.Redirectも使用すると、このエラーが発生します。残念ながら、Server.Executeは最後に向かって呼び出しページを呼び出すため、Server.Executeを使用できません。
エラーが発生しますが、以下のコードブロックはそれをトラップし、あなたの人生を続けることができます。
これを試してください:
using System.Threading.ThreadAbortException;
catch(ThreadAbortException ex)
{
throw;
}
あなたが説明する問題は、ここに示すように仕様によるようです:
http://support.Microsoft.com/kb/312629/EN-US/
Server.Execute
を使用すると問題が解決するはずです
_server.transfer
_をresponse.redirect()
に置き換えてみましたか?
MS-Testを使用してマルチスレッドアプリケーションの動作をテストしているときに、このメッセージに直面しました。
これの理由は、テストのメインスレッドが終了し、オブジェクトのクリーニングを初期化している間に、無限に実行することを目的とした他の作成されたスレッドがまだ機能していたためです。
乳首クリーンアップメソッドがオブジェクトを強制終了すると、これらのスレッドは中止され、上記のメッセージが表示されます。