1

here要求に応じてASP.NET MVC Yellow Screen of Death(YSOD)を生成することができます

ELMAHを使用せずにYSODのHTMLレンダリングをメールで送信することが可能かどうかを知りたいですか?私はエラーを処理しており、ユーザーにカスタムエラーページを表示しています。例外的な一般情報をメールで送信していますが、ASP.NETの実際の組み込みYSODエンジンにそれらをラップしてHTML書式を保持できるかどうかを本当に知りたいと思います。

UPDATE1:私は「管理例外」を考えるメッセージとビューを返し

私は私のカスタム例外(DupplicatedArbsException)を持っています。しかし、私が捉えていない本当のエラーであれば、エラービューを返します。

[HandleError(ExceptionType = typeof(Exception), View = "Error")] 
    [HandleError(ExceptionType = typeof(DuplicatedArbsException), View = "ErrorViewArbs")] 
    public ActionResult Create(string id, int? version) 
    { 
     //... 
    } 

HandleErrorは現在何もしません。

protected override void OnException(ExceptionContext filterContext) 
    { 
     var ex = filterContext.Exception; 
     base.OnException(filterContext); 
    } 

..

<customErrors mode="On" defaultRedirect="Error"/> 

のcustomErrorsモード= "オフ" に発生した例外は、asp.netからYSODです。しかし、私がcustomErrors mode = "on"にすると、それらの例外はHTMLには当てはまりませんが、例外メッセージ(HTMLはありません)だけがラップされます。

+1

を:YSODはの一部でありますASP.NETエンジンではなく、.NETフレームワークです。 – Omar

+0

ありがとう、私はそれを修正 –

答えて

1

あなたは、ASP.NETエンジンによって例外が処理されていないすべてのタイムを引き起こしているのglobal.asaxでApplication_Errorイベント扱うことができる:あなたの検索を支援するために

protected void Application_Error(object sender, EventArgs e) 
{ 
    var app = (HttpApplication)sender; 
    var context = app.Context; 
    // get the exception that was unhandled 
    Exception ex = context.Server.GetLastError(); 

    // TODO: log, send the exception by mail 
} 
+0

私はすべての例外を処理するので、Application_Errorは決して上げられません。また、context.Server.GetLastError()は常にnullです。 –

+0

すべての例外を処理する場合、YSODは表示されません。 –

+0

私はただYSOD例外を傍受し、サイト管理者に電子メールを送り、YSOD以外のメッセージをユーザーに送信したいだけです。 –

関連する問題