2016-07-22 4 views
3

よく、私はaspnetコアを学習していますが、アプリケーションがいつサーバ(IISやKestrelServerなど)を起動するのか、またサーバがhttprequestを聞いてアプリケーションに要求を転送する方法を理解できません。誰でも私を助けることができますか?おかげASPNET COREがhttprequestの受信を開始する方法

+0

あなたはそれを検索しようとしましたか?はいの場合は、調査結果を共有できますか? – Daenarys

+0

私は彼のソースを見てみましたが、私は見つけませんでした – oldman

答えて

2

まあ、(私はC#のについてのあなたの知識を把握することができませんでしたよう)さんは、最初から始めましょう

すべてのC#アプリケーションそれがあるので、そこに、プログラムの実行を開始する場所を指定する単一のMainメソッドが含まれている必要があり、 (AspNetCoreではとさえASPNETに

public static void Main(string[] args) 
{ 
    var config = new ConfigurationBuilder() 
     .AddCommandLine(args) 
     .Build(); 
    var host = new WebHostBuilder() 
       .UseKestrel() 
       .UseConfiguration(config) 
       .UseStartup<Startup>() 
       .Build(); 
    host.Run(); 
} 

:デフォルトテンプレートは、のようなものを、あなたが使用しますWebServerのタイプを設定し、HTTPリクエストをリスニングを開始するサーバーを伝えることができ、クラスProgramを持っていますMVCまたはWebApi)を使用することができます(また、使用する必要があります)OWIN(別名KatanaまたはvNext、MicrosoftのOWIN imそれぞれAspNetとAspNetCoreのためのplementations)。

OWINはWebServersとWebApplicationsとのコミュニケーション方法を示すインターフェイス(単なる仕様)を表します。通常は、Authentication/Authorization、Log、Error HandlingsなどのミドルウェアをプラグインできるパイプラインへのHttp Requestを処理し、パイプラインの最後にWebアプリケーションをプラグインする必要があります。

AspNetCoreでは、ホスト構成でを使用してMiddlewareパイプラインを設定しています。上記のMainメソッドを参照してください。PipelineはすべてのHttpRequestを処理します。 AspNetCoreでMVCアプリケーションを構築する場合

.UseMvc())あなたは、RESTfulなエントリポイントのために(HTTP GET、POST ...)見てMicrosoft.AspNetCore.Mvc.Controllerから継承するクラスを探すために、あなたのアプリケーションを伝えるミドルウェアを設定している

これは単純な概要に過ぎず、この技術のドキュメントをもっと詳しく知ることができます。 Katana、vNext、OWIN、OWINミドルウェア、OWINパイプラインなどのタグを検索するだけです。

+0

私はこれを理解しています。ありがとうございました – oldman

+0

@oldmanこの回答が役に立った場合は、あなたの質問を解決済みとしてください;) – Tanato

1

ここでは、asp.net core introductionでコアアプリケーションの解剖学的構造について説明します。あなたの質問に答える

いくつかの重要なテキストは、チュートリアルから、次のとおりです。

アンASP.NETコアアプリは、単にその主な方法でWebサーバーを作成しコンソールアプリケーションです。 Mainは、ビルダーパターンに続くWebHostBuilderを使用して、Webアプリケーションホストを作成します。ビルダーには、Webサーバー(たとえばUseKestrel)と起動クラス(UseStartup)を定義するメソッドがあります。上記の例では、Kestrel Webサーバーが使用されていますが、他のWebサーバーも指定できます。 Startupクラスは、リクエスト処理パイプラインと、アプリケーションに必要なサービスが設定されている場所を定義する場所です。起動クラスはパブリックであると、次のメソッドが含まれている必要があります。

public class Startup 
{ 
    public void ConfigureServices(IServiceCollection services) 
    { 
    } 

    public void Configure(IApplicationBuilder app) 
    { 
    } 
} 

私は、これはあなたがasp.netコアは、HTTPリクエストを処理する方法を理解するのに役立ちますね。 ありがとう

+0

thanks.best wish – oldman

関連する問題