-1

asp.net Webサイトに共通のカスタムエラーページがあります。これは、発生した最後のエラーコードを見つけてそのカスタムエラーページにリダイレクトしたいすべてのエラーで表示されるのが一般的であるためです。発生したエラー。

注:ソリューションはセッションベースである必要があります。もちろん、他のユーザーのシステムで発生したエラーをユーザーに表示させたくありません。

4

3 に答える 3

-1

IISまたはApacheを使用していますか?

Apacheの場合 カスタマイズされたエラーページを提供するようにApacheを設定するのは非常に簡単です。これに専念するhttpd.confファイルのセクションがあります。エラーごとに1つのディレクティブを実行するだけです。confファイルを開いて、セクション2のほぼ一番下までスクロールすると、編集する必要のあるセクションが表示されます。デフォルトでは、これらのディレクティブはコメント化されていますが、各ディレクティブのコメントを解除してから、パスを変更して独自のエラーページを指すようにするだけです。

ErrorDocument 404 /errordocs/404error.html

IIS IIS 6の場合:Webサイトまたは仮想ディレクトリを編集してからUserdefindedError。そこで、すべてのエラーファイルを編集し、ユーザー定義のasp.netファイルに変更できます。

IIS 7:詳細なエラーメッセージを参照してください:http: //blogs.msdn.com/b/rakkimk/archive/2007/05/25/iis7-how-to-enable-the-detailed-error-messages-for-the- website-while-browsed-from-for-the-client-browsers.aspx

于 2012-09-20T07:36:26.207 に答える
-1

私が提案するのは、UI.Page クラスを拡張し、そのクラスをすべてのページに使用することです。

そのクラス(vbはc#ではありませんが、同じ原則と簡単に変換できることを知っています)では、次のコードを使用します。

Public Class _PageBase
    Inherits System.Web.UI.Page

#Region "Page Functions"

    Private Sub Page_Error(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Error
        Session("error_StackTrace") = Server.GetLastError.StackTrace.ToString
        Session("error_Message") = Server.GetLastError.Message.ToString
        Session("error_Page") = Request.Url.ToString
        Session("error_Source") = Server.GetLastError.Source.ToString

        Server.ClearError()

        Response.Redirect("~/errors/Error.aspx")
    End Sub

#End Region

End Class

これは、その基本クラスを使用するすべてのページで発生し、最後の「サーバー」エラー (ユーザーが引き起こしたエラー) を渡し、すべての詳細をセッションに保存して、エラー ページに渡します。その後、あなたが望むようにすることができます。

于 2012-09-20T07:30:23.837 に答える
-1

あなたが何をしようとしているのかよくわかりません。ページ内で発生したコードのエラーをキャプチャし、そのページにメッセージを表示する必要があります (ページに留まる)。これが可能であれば、ユーザーに修正する機会を与えます。エラーが try/catch から外れて制御不能になった場合は、ログに記録して修正してください。

ユーザーに表示できる唯一のエラーは、「見つからないページ」です。

次のように最後のエラーを取得できますException LastOneError = Server.GetLastError();

また、エラーについて詳しく読むことができます: ASP.NET アプリケーションで "一般的なエラー" ページを作成して、そのページ自体を提供するときにトリガーされたエラーを処理するにはどうすればよいですか?

global.asax によってキャプチャされたエラーがユーザーの画面に表示されたかどうかを確認する方法

于 2012-09-20T07:42:34.770 に答える