ASP.NETコアプロセス(インプロセス)内でのホスティング
- ASP.NETコア(インプロセス)のホスティングモデルの過程で
- ケストレルサーバとは何ですか
アプリケーションがASP.NETコアを実行すると、.NETランタイムを探しますMain()
、それは、このアプリケーションのための出発点であるので、方法。
その後、Main()
この方法は、静的クラスと呼ばれるWebHost
静的メソッドCreateDefaultBuilder()
。
このCreateDefaultBuilder()
方法は、次のようないくつかのタスクを、実行します。
- WebサーバとしてケストレルとIISの統合を可能にします。
- 元の設定から設定をロードします。
- ログを構成します
今後の記事では、我々はそうでホストやアプリケーションの設定情報の内容と構成ログをロードして、さまざまな構成可能なソースのasp.netコアについて説明します。
このセクションでは、私たちが理解してみましょうCreateDefaultBuilder()
設定し、Webサーバーの機能を設定するために使用される方法を。ASP.NETコアアプリケーションは、プロセス中に(インプロセス)プロセスまたは外部(OutOfProcess)でホストすることができます。このビデオでは、我々は次のビデオをホストするインプロセス(インプロセス)を説明します、我々は外部プロセス(OutOfProcess)ホスティングについて説明します。
インプロセス(インプロセス)ホスティング
インプロセスホストを設定するには、してください<AspNetCoreHostingModel>
のアプリケーション内の値プロジェクトファイルに追加しますInProcess
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
我々は、利用可能なプロジェクトテンプレートのいずれかを使用することを選択した場合、すべてのIISおよびIIS Expressの構成はインプロセスとして(インプロセス)をホストしているため、デフォルトで新しいASP.NETコアプロジェクトを作成します。
ホストされたインプロセスの場合、CreateDefaultBuilder()
メソッド呼び出しUseIIS()
(w3wp.exeのかiisexpress.exe)**メソッドをし、IISワーカープロセス内のアプリケーションを開催しました***。
- パフォーマンスの観点からは、インプロセスのホスティングはOutOfProcessホスティング要求よりも高いスループットを提供します。
- IISの場合は、アプリケーション名の実行のプロセスがあるのw3wp、IIS Expressのために、それはあるiisexpress
- アプリケーション・プロセスの実行の名前を取得するには、使用してください
System.Diagnostics.Process.GetCurrentProcess().ProcessName
- 我々は、Visual Studioからプロジェクトを実行すると、それIISExpressデフォルト。
- IIS Expressは、アプリケーション開発用に最適化され、IISの軽量自己完結版です。私たちは、生産のためにそれを使用することはありません。生産では、IISを使用します。
- 私たちは、後のレッスンでは誰もが持ってIISにASP.NETコアアプリケーションをデプロイします。
プロセスのうちホスティング(アウトプロセス)
- 2台のWebサーバー、Webサーバー、内部および外部のWebサーバがあります。
- 内部Webサーバーは、ケストレル、外部のWebサーバはIIS、nginxのまたはApache可能です。
- 唯一の1つのWebサーバー、負荷のIISのasp.net Coreアプリケーションをホスティング使用インプロセス。このように、内部および外部のWebサーバとの間で、要求はその代理人とパフォーマンスの損失なしではありません。
ケストレルは何ですか
ケストレルは、ASP.NETコアクロスプラットフォームのWebサーバーです。すべてのサポートされるプラットフォームと.NETのコアのバージョンは、それを支持しました。それは、内ASP.NETコア内の内部サーバとしてデフォルトで含まれています。ケストレルエッジサーバー自体は、Webサーバのための、すなわちインターネットを使用することができる、それが直接クライアントからの着信HTTP要求を処理することができます。
ケストレルでは、アプリケーションをホスティングするためのプロセスがありますdotnet.exe
。私たちが使用している場合.NET Core CLI
、コアアプリケーションの.NETを実行しているとき(コマンドラインインタフェース)を、アプリケーションはWebサーバとしてケストレルを使用しています。
.NETのコアCLIは、.NETのコアアプリケーションを開発するためのクロスプラットフォームのツールです。CLIを使用することで行うために私たちをコマンド:
- 指定されたテンプレート、プロファイルやソリューションに基づいて新しいプロジェクトを作成します。
- ネットコアプロジェクトパッケージに必要なすべての依存関係やツールを復元
- プロジェクトをビルドし、そのすべての依存関係
- .NETのコアプロジェクトを実行し、そうで......
私たちは多くのことを行うには、.NETのコアCLIを使用することができます。
単にCLIの下で
.NETのコアCLIは、私たちのAsp.Netコア・アプリケーションを実行使用します。
- Windowsのコマンドプロンプトを起動します
- asp.netコアプロジェクトフォルダを含むファイルへのディレクトリを変更し、実行
dotnet run
コマンドを - C:\プロジェクト\ソース\レポ\ StudentManagement \ StudentManagement>
dotnet run
ビルドと.NETのコアCLIでプロジェクトを実行した後、それがアプリケーションにアクセスするためのURLが表示されます。私の例では、アプリケーションは、ブラウザのアドレスを介してアクセスすることができますhttp://localhost:5000 查看内容。
ケストレルでは、ホスティングおよびアプリケーションを実行するためのプロセスがありますdotnet.exe
。
だから我々は、に移動したときにhttp://localhost:5000
、我々は、プロセス名が表示されますときdotnet
。
同様の考えている場合:個人的なマイクロ・シグナルを追加へようこそ。
私だけでなく、あなたのための最新のブログをお勧めします、公共の数字の関心を歓迎し、あなたとリソースを待っているより多くの驚きがあります!一緒に、共通の進歩を学びます!