Global.asaxのApplication_Errorハンドラーでリダイレクトを実行しようとしています。特別なことは何もありません。
private void Application_Error(object sender, EventArgs e)
{
// ...snip...
Server.Transfer(somePath, false);
// ...snip...
}
これは完全な信頼の下でうまく機能しますが、中程度の信頼の下で機能させる必要があります。ここで作業しているコードは、共有ホスティング環境で正しく機能する必要があります(残念ながら、この要件を制御することはできません)。
ただし、テスト目的で開発環境(XP Pro / IIS 5.1)で次のようにサイトを構成すると、次のようになります。
<system.web>
<trust level="Medium"/>
</system.web>
次のエラーで失敗します。
タイプ'System.Security.Permissions.SecurityPermission、mscorlib、Version = 2.0.0.0、Culture = neutral、PublicKeyToken=b77a5c561934e089'のアクセス許可の要求に失敗しました。** System.Security.CodeAccessSecurityEngine.Check(オブジェクトデマンド、StackCrawlMark&stackMark、ブールisPermSet)で System.Security.CodeAccessPermission.Demand()で System.Web.HttpWorkerRequest.SendResponseFromMemory(IntPtr data、Int32 length)で System.Web.HttpWorkerRequest.SendResponseFromMemory(IntPtr data、Int32 length、Boolean isBufferFromUnmanagedPool)で System.Web.HttpResponseUnmanagedBufferElementで。 System.Web.IHttpResponseElement.Send(HttpWorkerRequest wr) System.Web.HttpWriter.Send(HttpWorkerRequest wr)で System.Web.HttpResponse.Flush(Boolean finalFlush)で System.Web.HttpResponse.Flush()で System.Web.HttpResponse.End()で System.Web.HttpServerUtility.Transfer(文字列パス、ブールpreserveForm)で
その他の注意事項:
- これは、Global.asaxからでもHttpModuleからでも発生します。
- これは、Response.Redirect(somePath)でも発生します。
あなたが提供できる洞察に感謝します。私はこれについて自分の$$をグーグルで検索しましたが、喜びはありません。
ありがとう!