ASP.NETコア開発者の例外ページ

UseDeveloperExceptionPageミドルウェア

私たちは、次のコードでスタートアップクラスを設定()メソッドについて話します

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }

    app.UseFileServer();

    app.Run(async (context) =>
    {
     throw new Exception("您的请求在管道中发生了一些异常,请检查。");
        await context.Response.WriteAsync("Hello World!");
    });
}

私たちは私たちのアプリケーションを実行するために上記のコードを使用している場合、我々は、例外が表示されませんが、参照「にdefault.htmlページからこんにちは。」あなたがasp.netコア要求処理パイプラインの作品を知っている場合、あなたはおそらく、すでに私たちは私たちをスローされた例外の原因が表示されていないことを知っています。

UseFileServerミドルウェアのコンバインUseDefaultFilesUseStaticFilesミドルウェア機能。私たちの前のビデオシリーズでは、我々はwwwrootの名前のフォルダが含まれているdefault.htmlデフォルトのHTMLドキュメントを。

したがって、アプリケーション、即ち、のルートURL要求http://localhost:49119によってUseFileServer反転処理ミドルウェアとパイプは、そこ。だから、私たちにRun()次のミドルウェア方法登録要求パイプラインで実行することはできませんので、我々は、このミドルウェアはスロー表示されません。

我々がある場合さて、http://localhost:49119/abc.html要求が行われ、私たちは、例外が表示されます。ので、この場合には、UseFileServerミドルウェアは、名前を見つけることができないabc.htmlファイルのを。それは、我々の例で使用し、パイプライン内の次のミドルウェアを呼び出すしていきますRun()ミドルウェアを登録する方法。本ミドルウェアは、予想通り、我々は例外の詳細を参照して、例外がスローされます。

あなたは伝統的なasp.netの経験を持っている場合は、このページに非常に精通している必要があります。これは、伝統的なasp.netに似て死の黄色の画面

このDeveloper Exceptionページには、例外の詳細が含まれています。

  • 例外の原因となったファイル名と行番号を含む、スタックトレース
  • クエリ文字列、クッキー和HTTPヘッダ

現時点では、「問合せ」タブの例外ページには、私たちは「何のデータをクエリ文字列はありません。」を参照してください。すべてのリクエストURLのクエリ文字列パラメータがある場合は、以下に示すように、あなたは「クエリ」タブでそれらが表示されます。

http://localhost:48118/abc.html?country=person&state=islocked

カスタムUseDeveloperExceptionPageミドルウェア

ASP.NETコア内の他のミドルウェア・コンポーネントのほとんどのように、我々はまた、カスタマイズすることができUseDeveloperExceptionPageミドルウェア。あなたはミドルウェア・コンポーネントをカスタマイズしたいときはいつでも、常にあなたが適切であってもよいことに注意してくださいOPTIONS对象だから、カスタマイズするUseDeveloperExceptionPageミドルウェアを、

DeveloperExceptionPageOptions developerExceptionPageOptions = new DeveloperExceptionPageOptions
{
    SourceCodeLineCount = 10
};
app.UseDeveloperExceptionPage(developerExceptionPageOptions);

SourceCodeLineCount例外が含まれる前と後のプロパティは、コード行のコード結果の行数を指定します。

どのようにUseDeveloperExceptionPageミドルウェアの仕事

UseDeveloperExceptionPageミドルウェア・コンポーネントの背後にあるパイプラインは例外をスローした場合、それはと例外を処理することができるので、他のミドルウェアの前に配置の位置と中間位置Developer Exceptionページ。以下のコードを参照してください:登録ミドルウェア後のファイル名を指定して実行()を使用して、UseDeveloperExceptionPage()ミドルウェアアプローチを。したがって、この場合には、開発者が異常なページが表示されません。それはそれは、すぐに要求処理パイプラインの考えられる理由として配置しなければならない方法です。

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    //app.UseFileServer();

    app.Run(async (context) =>
    {
        throw new Exception("Some error processing the request");
        await context.Response.WriteAsync("Hello World!");
    });

    if (env.IsDevelopment())
    {
        DeveloperExceptionPageOptions developerExceptionPageOptions = new DeveloperExceptionPageOptions
        {
            SourceCodeLineCount = 10
        };
        app.UseDeveloperExceptionPage(developerExceptionPageOptions);
    }
}

 

同様の考えている場合:個人的なマイクロ・シグナルを追加へようこそ。

私だけでなく、あなたのための最新のブログをお勧めします、公共の数字の関心を歓迎し、あなたとリソースを待っているより多くの驚きがあります!一緒に、共通の進歩を学びます!

おすすめ

転載: www.cnblogs.com/cool2feel/p/11453897.html