それは、このようなコードを持っているStartup.csファイルのConfigure
方法では一般的です:Asp.Net Coreの開発者例外ページをカスタマイズするには?
if(env.IsDevelopment()) {
app.UseDeveloperExceptionPage();
}
app.UseDeveloperExceptionPage();
行は例外のために非常に有用である発生したときに、ブラウザに表示される詳細情報を引き起こしデバッグ
私はあなたが出力を見てきた確信している、それはこのようなものになります。
これは素晴らしいスタートですが、時には、開発者として、我々はについての詳細を提供するために、例外に情報を追加しますエラー。 System.Exception
クラスは、そのような情報を格納するのに使用できるData
コレクションを持っています。だから、例えば私のカスタムException
から継承AppException
がそうのように、標準の例外メッセージに加えて、プライベートメッセージを受け取るコンストラクタがあります:あなたが撮影することができますように
/// <summary>
/// Application Exception.
/// </summary>
/// <param name="message">Message that can be displayed to a visitor.</param>
/// <param name="privateMessage">Message for developers to pinpoint the circumstances that caused exception.</param>
/// <param name="innerException"></param>
public AppException(string message, string privateMessage, Exception innerException = null)
: base(message, innerException) {
//Placing it in the exception Data collection makes the info available in the debugger
this.Data["PrivateMessage"] = privateMessage;
}
を、それは開発者があればいいと思います例外ページにはException
(AppException
の場合)と他のすべての情報が表示され、PrivateMessage
が表示されます。私は、開発者の例外ページに表示される情報をカスタマイズまたは拡張する方法を把握するために、多かれ少なかれ見てきましたが、良い情報は見つかりませんでした。
デベロッパーの例外ページに表示される情報をカスタマイズまたは拡張するにはどうすればよいですか?
チップをありがとう。あなたのリンクからは、https://github.com/aspnet/Common/blob/ffb7c20fb22a31ac31d3a836a8455655867e8e16/shared/Microsoft.Extensions.StackTrace.Sources/ExceptionDetailsProvider.csにあるExceptionDetailsProviderが使用され、実際のHTML出力は「ErrorPage」はhttps://github.com/aspnet/Diagnostics/blob/3a868d87a2458fd025ca71e2538b3a72f67c7c50/src/Microsoft.AspNetCore.Diagnostics/DeveloperExceptionPage/Views/Obsolete/ErrorPage.csにあります。残念ながら、「ErrorPage」は生成された.csではありません。 cshtml。 Arg。 –
@RonCあなたが投稿した2番目のリンクは 'Obsolete'名前空間にあります。これはあなたが探しているcshtmlファイルではありませんか? https://github.com/aspnet/Diagnostics/blob/dev/src/Microsoft.AspNetCore.Diagnostics/DeveloperExceptionPage/Views/ErrorPage.cshtml – Polynomial
あなたは絶対に正しいです。ありがとうございました! –