Windowsのサービスとして実行されているASP.NET Core アプリケーションに外部からアクセスできるようにする手順を紹介します。
概要
こちらの記事では、
ASP.NET 6アプリケーションをWindowsのサービスとして実行する手順を紹介しました。
Windowsのサービスとして実行でき、ローカルマシンからWebブラウザでアプリケーションが動作することは確認できましたが、
外部からアクセスした場合には、まだアクセスできない状態です。
この記事では、サービスとして実行されているASP.NET Coreアプリケーションに外部からアクセスできるようにする手順を紹介します。
手順:アプリケーションのエンドポイントの設定
サービスとしてASP.NET Coreアプリケーションを実行した場合、Kestrel Webサーバーとして動作します。
Kestrel Webサーバーに他のホストからアクセスできるよう設定します。
アクセス可能なURLをASP.NET Core アプリケーションに設定します。
今回の例では、
こちらの記事で実装した
ASP.NET Coreアプリケーションの appsettings.jsonファイルを変更します。
Kestrel Webサーバーに外部からアクセス可能にする設定の詳細については
こちらの記事も参照してください。
{
"Kestrel": {
"Endpoints": {
"Http": {
"Url": "http://*:5000"
},
"Https": {
"Url": "https://*:5001"
}
}
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*"
}
または、
{
"urls": "http://*:5000;https://*:5001",
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*"
}
解説
下記コードが追加部分です。URLに*を設定し、このホストに対するアクセスすべてを受け付ける設定とします。
"Kestrel": {
"Endpoints": {
"Http": {
"Url": "http://*:5000"
},
}
},
変更後プロジェクトをビルド、発行し実行ファイルをマシンに配置します。
手順:ファイアーウォールの設定
コントロールパネルの[Windows Defender ファイアウォール]の設定画面を開きます。
左側の[Windows Defender ファイアウォールを介したアプリまたは機能を許可]の項目をクリックします。
下図の[許可されたアプリ]設定画面が表示されます。画面右下の[別のアプリの許可]ボタンをクリックします。
下図の[アプリの追加]ダイアログが表示されます。[パス]欄の右側の[参照]ボタンをクリックします。ファイル選択ダイアログが表示されますので、
配置したASP.NET Coreアプリケーションを選択します。
ファイルが選択されると[アプリ]の欄に追加されます。選択後ダイアログ下部の [追加] ボタンをクリックします。
[許可されたアプリ]の画面に戻ると、追加したアプリケーションの項目が追加されています。項目の右側の[プライベート][パブリック]のチェックボックスをクリックし
チェックをつけます。チェックされたアプリケーションの通信はファイアーウォールを通過できるようになります。
動作確認
別のマシンから、
http://(対象マシンのIPアドレス):5000/
のURLにアクセスします。下図のページが表示されます。
サービスとして実行されているASP.NET Coreアプリケーションにアクセスできました。
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
最終更新日: 2023-03-06
作成日: 2022-07-08