0

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)でも発生します。

あなたが提供できる洞察に感謝します。私はこれについて自分の$$をグーグルで検索しましたが、喜びはありません。

ありがとう!

4

2 に答える 2

0

私はあなたと同じ問題を抱えていました。

私が使用した:

Response.Redirect("~/ErrorRedirectPage.aspx",false);

そして、それはうまくいきます。

于 2013-01-16T11:36:37.357 に答える