たとえば、Global.asaxエラーハンドラからerorrレポート電子メールで使用するYSOD出力をキャプチャしたいとします。組み込みのysodジェネレータを利用する方法はありますか?要求に応じてASP.NET Yellow Screen of Death(YSOD)を生成することはできますか?
答えて
はい、これを行う方法があります。
グローバルのApplication_Errorイベント。asaxファイル、System.HttpUnhandledExceptionとして最後の例外を取得します。あなたのコードは次のようになります。
var lastException = Server.GetLastError() as HttpUnhandledException;
string Ysod = lastException.GetHtmlErrorMessage();
// your call to emailing routine follows
私は他の人の意見に同意します。 ELMAHでもこれを行うことができます。
ELMAHあなたは自動的に尋ねていることを確認してください。
私は一般的に、ユーザーにYSODを体験させたくないと言います。これは、エラーをキャプチャし、ユーザーに、より優雅なエラーページを可能にする前に、私は、Webアプリケーションに置かれている何か...
protected void Application_Error(object sender, EventArgs e)
{
MailMessage msg = new MailMessage();
HttpContext ctx = HttpContext.Current;
msg.To.Add(new MailAddress("[email protected]"));
msg.From = new MailAddress("[email protected]");
msg.Subject = "My app had an issue...";
msg.Priority = MailPriority.High;
StringBuilder sb = new StringBuilder();
sb.Append(ctx.Request.Url.ToString() + System.Environment.NewLine);
sb.Append("Source:" + System.Environment.NewLine + ctx.Server.GetLastError().Source.ToString());
sb.Append("Message:" + System.Environment.NewLine + ctx.Server.GetLastError().Message.ToString());
sb.Append("Stack Trace:" + System.Environment.NewLine + ctx.Server.GetLastError().StackTrace.ToString());
msg.Body = sb.ToString();
//CONFIGURE SMTP OBJECT
SmtpClient smtp = new SmtpClient("myhost");
//SEND EMAIL
smtp.Send(msg);
//REDIRECT USER TO ERROR PAGE
Server.Transfer("~/ErrorPage.aspx");
}
あなたはELMAHを聞いたことがありますか?それはあなたが本当にしたいすべての機能を与えるかもしれない...ここで
はそれについて少し説明してブログ記事です:http://www.hanselman.com/blog/ELMAHErrorLoggingModulesAndHandlersForASPNETAndMVCToo.aspx
私はELMAH (Error Logging Modules and Handlers for ASP.NET)になります
ELMAH(エラーログモジュールおよび ハンドラ)は、アプリケーション全体のエラー ロギング機能です。完全に です。実行中のASP.NET Webアプリケーションに を動的に追加するには、 の再コンパイルまたは再デプロイメントを一切必要とせず、マシン上の またはすべてのASP.NET Webアプリケーション をマシンに追加することができます。ほぼすべての未処理の例外の
- ログ:ELMAH一度
はあなたのコードの単一 行を変更せずに、次の 施設を取得し、 実行中のWebアプリケーション内に落下し、適切 を設定されています。
- 記録された例外のログ全体をリモートで表示するWebページ。
- 記録されたいずれかの詳細情報をリモートで表示するWebページ 例外。
- 多くの場合、 の元の黄色の画面では、 の例外に対してASP.NETが生成されました。カスタムエラーモード をオフにしても確認できます。
- 各エラーの発生時の電子メール通知。
- ログから最後の15個のエラーのRSSフィード。
未処理の例外がアプリケーションで発生するたびにGlobal.asaxファイル内のApplication_Errorイベントがトリガされます。 Server.GetLastError()メソッドを使用して発生した最後の例外を取得できます。
同様に、独自のカスタムエラーページは、web.configファイルのcustomErrorsセクションのweb.configで指定して作成できます。デフォルトファイルを指定することで、そこに例外がルーティングされたときにカスタムコーディングを行うことができます。
- 1. 要求に応じてASP.NET MVC Yellow Screen of Death(YSOD)を生成することができます
- 2. 要求に応じてツールチップを生成する
- 3. クライアントの要求に応じてRailsサーバーで音を再生
- 4. Googleのアプリケーションエンジンでユーザーの要求に応じてCSVファイルを生成
- 5. 要求に応じてSoapUIエラーが発生しました - NoClassDefFoundError
- 6. PRINT SCREENイベントをリスンすることはできますか?
- 7. 要求/応答のペアからWSDLを作成することはできますか?
- 8. HTMLスニペットを別のファイルに保存し、必要に応じて変数をプラグインし、必要に応じてエコーアウトすることはできますか?
- 9. ASP.NET MVCのコントローラーメソッドの結果に応じてHTMLを生成するには
- 10. 要求に応じて、リーフレットにラスターイメージをオーバーレイする方法は?
- 11. 要求に応じてプラグアンドプレイフィルタドライバを停止する方法はありますか?
- 12. HTTP応答はHTTP要求と同じパスに従っていますか?
- 13. httpメソッドに応じてフィールドを要求する方法は?
- 14. AzureでWebアプリケーションを作成するときにLinuxサーバーを要求することはできますか?
- 15. <!xsl:value-of /> xsltタグを反応させることはできますか?
- 16. OSB 11gは応答と同じ要求ペイロードを返します
- 17. AsyncTaskは、これらのデータに応じてボタンを作成した後にデータを要求します。
- 18. IIS ASP.NET WebApi同じサーバーを要求するとデッドロックが発生する
- 19. プロパティ値に応じて値を要求する
- 20. スレッド(受信者)は要求を送信するだけで、スレッド(受信者)はファイルに要求と応答を書き込むことができますか?
- 21. JARに応じてクラス/パッケージを除外することはできますか?
- 22. 要求に応じてFacebookのアクセストークンをキャッチしますが、どうですか?
- 23. ASP.Net WebForms - CodeBehindのList of SqlParamaterを読み込むことはできますか?
- 24. Laravel 5.5要求に応じてDB_HOSTを変更する方法
- 25. 要求に応じてクライアントIPアドレスを取得する
- 26. 要求に応じてexec-maven-pluginを実行する
- 27. ノードエクスプレスが要求に応じてハングアップします
- 28. WSO2 ESBは、プロキシサービスで要求に応じてホスト名を変更します
- 29. 大量のデータを要求しているときには、応答が返ってこないのですか?
- 30. 私の要件に応じてベースクラスを作成することができません
私はELMAHを使いたくない理由を知っていますが、これは私が確かに求めていた答えです。私が推測するようなサードパーティーのモジュールですでに溢れている忙しいプロジェクトに別の依存関係を抱かせたくありませんでした。 – nicknystrom
私が探していたことはまさに私のプロジェクトでElmahを使用していましたが、ユーザーが管理者の場合は、友好的なエラーメッセージだけでなく詳細なYSODを表示したいと思います。 –
私はElmahを他のプロジェクトで使っていましたが、この場合は具体的には、エラーログを制御したいのです。これは、元の質問に適切に答えて、今日はまだ立っている*一口* – ppumkin