Visual StudioでASP.NET Webプロジェクトで出力される実行可能ファイル(拡張子 .exe)を実行した際のポート番号を変更する方法を備忘録的に投稿します。
[Kestrel]リスニングポート
ASP.NET Web プロジェクトをビルドしてデバッグ開始すると表示される画面。
[Kestrel]というWeb サーバーです。Windowsの他にLinuxやmacOSでも動作する優れものですが、実行すると既定値ではプロンプト(黒い画面)が表示されます。
で[Now listening on:]の後に要求を受け付けるためのURLが表示されます。
Visual Studioでプロジェクトを作成した際に[launchSettings.json]に “applicationUrl” として設定されています。
デバッグ実行した際に、この設定値が適用されています。
しかしデバッグ実行せずにエクスプローラーなどで直接ファイルを開いて実行した場合には、こんな感じで[Now listening on:]に表示されるURLは[launchSettings.json]の設定値が反映されません。
何も設定が無い場合には、上の例のように “http://localhost:5000” になります。
このURLは[appsettings.json]で変更が可能です。詳しい内容はMirosoftの[ASP.NET Core の構成]に記載があります。
Kestrel エンドポイント構成
Mirosoftの[ASP.NET Core の構成]に従って[appsettings.json]ファイルで動作するURLの変更が可能です。
具体的には次の手順で行います。
1.[ソリューション エクスプローラー]で[appsettings.json]ファイルに新しくJSON形式のファイルを追加します。(名前は “appsettings.Production.json” にします)
2.[appsettings.Production.json]を開いて編集します。
{
"Kestrel": {
"Endpoints": {
"Https": {
"Url": "https://192.168.24.21:6666"
}
}
}
}
URLのドメイン名をIPアドレスで指定していますが、localhostなどの指定も可能です。
3. ビルド後に、実行ファイルを開くと表示されるURLが[appsettings.Production.json]で指定したURLに変更されます。
まとめ
Visual StudioでASP.NET Webプロジェクトで出力される実行可能ファイル(拡張子 .exe)を実行した際のポート番号を変更する方法について書きました。
実行ファイルをダブルクリックして実行した場合、[launchSettings.json]などの設定は適用されず[Kestrel]Webサーバーに意図しないポートが設定されます。
[Kestrel]Webサーバーが受け付けるURLは、新しく[appsettings.Production.json]ファイルを作成して設定可能です。
ASP.NET Webプロジェクトで出力される実行可能ファイル(拡張子 .exe)を直接起動した場合のURLを設定したい人の参考になれば幸いです。
スポンサーリンク
最後までご覧いただき、ありがとうございます。