ホストのASP .WindowsサービスとしてのWebアプリケーション


この記事では、どのように展開してASPをホストするかについて議論します.WindowsコアとしてのWeb API.なぜWindowsサービスとしてアプリケーションをホストしているのか、IISではないのかのような気がします.この記事では、Windowsサービスとしてアプリケーションをホストすることの背後にある理由を参照してください.コーヒーを飲み、コーディングを始めましょう.

Windowsサービスとは


によるとMicrosoft documentation :

Microsoft Windows services, formerly known as NT services, enable you to create long-running executable applications that run in their own Windows sessions. These services can be automatically started when the computer boots, can be paused and restarted, and do not show any user interface. These features make services ideal for use on a server or whenever you need long-running functionality that does not interfere with other users who are working on the same computer. You can also run services in the security context of a specific user account that is different from the logged-on user or the default computer account.


アプリケーションの長期的な実行を行う必要があるほとんどのシナリオでは、Windowsサービスは最適なオプションです.Windowsサービスは、Excel I . E実行アプリケーションを必要とします.

Windowsサービスとしてアプリケーションを配備する理由


アプリケーションを作成するときは、ユーザーがアクセスできるようにどこかにホストしなければなりません.IISまたはWindowsサービスとしてホストすることもできます.Windowsサービスとしてアプリケーションをホスティングする理由はいくつかあります.
  • 時にはIISのホストアプリケーションが、我々はIISの完全な機能を利用しないでください.
  • WebアプリケーションをホストしているマシンがIISを有効にしていない場合、またはIISが有効になっている場合はホストに設定しないでください.NETコアアプリケーション.
  • 我々は既にWindowsサービスとしてアプリケーションをホストするために実行可能を必要とすると論じました.これを行うには.NETコアは、セルフインクルードディストリビューション(SCD)と呼ばれる展開モードを提供します.我々はSCDとして我々のアプリを公開したとき、それは一緒に我々のアプリの実行可能を提供します.NETコアランタイムDLL.あなたが異なるホスティングと展開モデルについて知らないならば.次に、以下の記事をチェックしてください.




    ホスティング.Webサービスとしての


    だから今、実際には、Windowsサービスとしてアプリケーションをホストする時間.まず基本的なASPを作成しなければなりません.NETコア3.1 Web API.どのように作成するかわからない人は、以下の手順に従います.
    オープンVisual Studio 19も確認します.NETコア3.1はあなたのマシンにインストールされます.新しいプロジェクトを作成し、ASP . NETを選択します.NETコアWebアプリケーションテンプレートと次をクリックします.

    アプリケーションに適切な名前を付け、「作成」ボタンをクリックします.

    を選択します.ドロップダウンと[ API ]を選択し、[作成]ボタンをクリックします.

    それは我々のWeb APIを作成している.

    次のステップはnugetパッケージをインストールしなければなりません.

    Or
    nugetパッケージマネージャーコンソールで以下のコマンドを実行します
    Install-Package Microsoft.Extensions.Hosting.WindowsServices
    
    現在、Windows Webサービスとして変換するWeb APIの1行だけがあります.オープンユアProgram.cs また、CreateHostBuilderメソッドが表示され、メソッドの末尾にuseWindowsService ()が追加されます.
    public static IHostBuilder CreateHostBuilder(string[] args) =>
                Host.CreateDefaultBuilder(args)
                    .ConfigureWebHostDefaults(webBuilder =>
                    {
                        webBuilder.UseStartup<Startup>();
                    }).UseWindowsService();
    
    そして、それは必要なすべてのコード変更です.
    次に、SSDモードでアプリケーションを配備します.アプリケーションを右クリックし、「発行オプション」を選択します.

    フォルダとして発行ターゲットを選択しAdvanced.. ボタン.

    選択した展開モードを「Win - X 64」として「実行」「ターゲットランタイム」として選択し、「保存」をクリックして「プロファイルを作成」ボタンをクリックします.

    最後に、アプリケーションを公開するには、[発行]ボタンをクリックします.
    また、以下のコマンドを実行してdotnet cliを使用してアプリケーションを公開することもできます.
    dotnet publish -c Release -r win-x64 --self-contained
    
    bin\release\netcoreapp 3に進みます.1と私たちの公開DLLが含まれているWinx - 64のフォルダを見つける.
    Windowsサービスを作成するには、コマンドプロンプトをAdministratorモードで開き、以下のコマンドを使用します.
    sc create <name of service you want to create> binPath= <path of executable of your app>
    
    以下のコマンドを実行します.
    sc create WindowsServiceDemo binPath= "C:\Projects\WindowsServiceDemo\bin\Release\netcoreapp3.1\win-x64\WindowsServiceDemo.exe"
    
    それで、我々のサービスはつくられます.

    サービスを右クリックし、スタートをクリックします.それで、我々のウェブAPIは、URLhttp://localhost:5000 . 私たちのAPIは、現在の出力を取得するかどうかをチェックするために現在1つのコントローラをhttp://localhost:5000/weatherforecast ブラウザでレスポンスを表示します.

    我々は正常に我々のASPをホストしている.WindowsコアとしてのWeb API.

    結論


    この記事では、Windowsサービスとして、Windowsサービスとしてアプリケーションをホストする理由を説明しました.また、ASPをホストする方法を示します.WindowsコアとしてのWeb API.
    私は本当にあなたがこの記事を楽しんで、友人と共有し、あなたの考えやコメントを送信することを躊躇しないでください願っています.
    あなたはTwitterで私に従うことができます.
    ハッピーコーディング!