この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 61848|答える: 3

[.NET Core] ASP.NET コアミドルウェアの詳細な説明

[リンクをコピー]
掲載地 2019/09/18 11:35:59 | | | |
ミドルウェアとは何か?

ミドルウェアとは、リクエストとレスポンスを処理するためにアプリケーションパイプラインに組み立てられるソフトウェアです。 各コンポーネント:

  • リクエストをパイプライン内の次のコンポーネントに渡すかどうかを選択します。
  • 作業はパイプライン内の次のコンポーネントが呼び出される前後に行うことができます。

リクエストデリゲートは、各HTTPリクエストを処理するリクエストパイプラインを構築するために使用されます。

リクエストデリゲートはRun、Map、Use拡張メソッドを使って設定されます。 別のリクエストデリゲートは、インライン匿名メソッド(インラインミドルウェアと呼ばれる)で指定することも、再利用可能なクラスで定義することもできます。 これらの再利用可能なクラスやインライン匿名化手法はミドルウェアまたはミドルウェアコンポーネントです。 リクエストフロー内の各ミドルウェアコンポーネントは、パイプライン内の次のコンポーネントを呼び出し、必要に応じてリンクショートサーキットを呼び出します。

HTTPモジュールをミドルウェアに移行する過程では、以前のバージョン(ASP.NET 年)の ASP.NET Coreとリクエストパイプラインの違いを説明し、さらに多くのミドルウェアの例を提供します。

IApplicationBuilderを使ってミドルウェアパイプラインを作成します

ASP.NET コアのリクエストプロセスは一連のリクエストデリゲートで構成されており、以下の図に示されています(実行プロセスは黒い矢印に従っています):

各代議員は次の代議員の前後で行動を行うことができます。 また、デリゲートはリクエストを次のデリゲートに渡さないかを決めることもあり、これはリクエストパイプライン内のショートサーキットと呼ばれます。 ショートサーキットは通常、不要な作業を避けられるため望ましいです。 例えば、静的ファイルミドルウェアは静的ファイルのリクエストを返し、パイプラインの残りの部分をショートカットできます。 例外処理デリゲートはパイプラインの初期段階で呼び出す必要があり、後続のパイプラインで例外をキャッチできるようにします。

最も簡単なのは、すべてのリクエストを処理するためにCoreアプリケーション ASP.NET デリゲートを設定することです。 このシナリオには実際のリクエストパイプラインは含まれていません。 代わりに、各HTTPリクエストごとに匿名メソッドが呼び出されます。


最初のアプリです。 Run delegateはパイプラインを終了させます。

このようなコードがあります:




ブラウザからアクセスすると、確かに最初のアプリに存在していることがわかります。 ランはパイプラインを終了させます。



アプリで複数のリクエストを委任できます。 使用は相互に繋がっています。 次のパラメータはパイプライン内の次の代理者を表します。 (次のパラメータを呼ばなければパイプラインを終了できることを覚えておいてください。) 通常、次の委任の前後にアクションを実行できます。以下の例に示されています:

ブラウザを使って以下のような結果にアクセスする:



リクエスト代理の実行順序は上記のフローチャートに従っていることがわかります。

手記:

応答がクライアントに送信された後は、次に電話をかけないでください。 Invoke。 応答が始まった後、HttpResponseの変更が例外を投げ出します。 例えば、レスポンスヘッダーやステータスコードの設定時に例外が発生します。 次にコールした後に応答本文を書きます。

契約違反につながる可能性があります。 例えば、内容の長さで説明されている内容の長さを超えて書くことなどです。

レスポンシブコンテンツのフォーマットが壊れている可能性があります。 例えば、CSSファイルにHTMLフッターを書き込むといった例です。

HttpResponse.HasStartedは、レスポンスヘッダーが送信されたか、または本文が書かれているかを示すのに役立つヒントです。


組み込みミドルウェア

ASP.NET Coreには以下のミドルウェアコンポーネントが搭載されています:


ミドルウェア形容
認証認証サポートが利用可能です
CORSドメイン間リソース共有の設定
レスポンスキャッシュキャッシュ応答のサポートが利用可能です
レスポンス圧縮レスポンス圧縮のサポートを提供します
ルーティングリクエストルーティングの定義と制約
会期ユーザーセッション管理を提供します
静的ファイル静的ファイルおよびディレクトリの閲覧をサポートします
URLリライトミドルウェアURLの書き換えやリダイレクトのサポートリクエストに使われます





先の:百度の新商品! One Moment Albumは現在100万人のユーザーが無制限のストレージを請求できます:
次に:英語レベル4および6リスニングおよび大学院入学試験 英語語彙再試験 口頭データ共有
掲載地 2021/09/22 20:47:00 |
学ぶことを...
掲載地 2021/10/10 18:55:42 |
学ぶために、この記事は会員資格を開設しました
掲載地 2021/10/10 18:59:21 |
https://www.cnblogs.com/stulzq/p/7760648.html
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com