ASP.NET CoreでURLを設定する5つの方法
プリアンブル
ASP.NET Core 3.1 で開発する場合、サーバーがリッスンするポートとプロトコルを設定する必要があります。 公式ヘルプドキュメント は、URLの指定方法として以下の4つがあることを簡単に説明しています。
- {を使用します。
設定
{コード
環境変数です。
- を使用します。
ASPNETCORE_URLS
コマンドライン引数を指定します。 - を使用します。
dotnet --urls
を設定のキーとして使用します。 - 使用方法 {コード の拡張メソッドです。
URLの設定方法を明確にするために、以下のような名前の拡張機能を作成します。
urls
ASP.NET Core Web API アプリケーションで、デフォルトでは ASP.NET Core 起動後、次の URL をリッスンすることを説明します。
http://localhost:5000
https://localhost:5001
URLフォーマット
URL形式の表現は主に3種類あり、公式ドキュメントで確認することができます( https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-3.1 )
フォーマット1.
UseUrls
例えば
AspNetCoreUrl
,
{コード
フォーマット 2.
{scheme}://{loopbackAddress}:{port}
例えば
http://localhost:5000
,
{コード
フォーマット 3.
https://localhost:5001
例えば
{scheme}://{IPAddress}:{port}
,
{コード
前提条件
URL を設定するいくつかの方法をテストする前に、まず URL を
http://127.0.0.1:5000
プログラムを作成し、出来上がったルートディレクトリでコマンドラインツールを開き、それに従ってテストします。
見ての通り、ここでの私のプログラムのルートは
https://192.168.1.100:5001
で、使用する端末は、Microsoft Windows PowerShellの公式サイト
方法1 環境変数を利用する
を変更せずに
{scheme}://*:{port}
ソースコードを一切変更せずに(つまり、プロジェクト作成時のデフォルトの状態)、ルートディレクトリに生成されたプログラムを見つけて、コマンドライン・ターミナルを開いてください
http://*:5000
Windows のコマンドライン(cmd コマンドライン)を使用する場合は、次のように設定します。
https://domain.com:5001
注意:setxで環境変数を設定した後、環境変数を有効にするために新しいWindowsコマンドラインウィンドウを開く必要があります。
Linuxシステムで環境変数を設定するには、次のコマンドを使用します。
AspNetCoreUrl
http://localhost:7000;https://localhost:7010
方法2 コマンドライン引数を使用する
生成されたプログラムのルートディレクトリにある
D:\AspNetCoreUrl\AspNetCoreUrl\bin\Debug\netcoreapp3.1
コマンドで、urlsパラメータを指定します。
AspNetCoreUrl
http://localhost:7001;https://localhost:7011
画像
方法3 設定ファイルを使用する
生成されたプログラムのルートディレクトリにある
# Environment variables only take effect in the current command line window
$Env:ASPNETCORE_URLS = "http://localhost:7000;https://localhost:7010"
# Or use the DOTNET_URLS environment variable to take effect as well
$Env:DOTNET_URLS = "http://localhost:8000;https://localhost:8010"
# Run the AspNetCoreUrl program
dotnet AspNetCoreUrl.dll
ファイルを開き、url設定項目を追加し、その上で
# Environment variables only take effect in the current command line window
set ASPNETCORE_URLS=http://localhost:7000;https://localhost:7010
# Save the ASPNETCORE_URLS variable to the user environment variable
setx ASPNETCORE_URLS "http://localhost:7000;https://localhost:7010"
# Add the /m parameter to save the ASPNETCORE_URLS variable to the system environment variable
setx ASPNETCORE_URLS "http://localhost:7000;https://localhost:7010" # Run the AspNetCoreUrl program
dotnet AspNetCoreUrl.dll
を実行します。
# Environment variables are only valid in the current terminal and need to be set again after closing the terminal
export ASPNETCORE_URLS=
画像
走行の結果は以下の通りです。
方法4 UseUrlを使用する
この方法では、ソースコードを修正して
dotnet --urls
ファイルを編集し
dotnet AspNetCoreUrl.dll --urls
メソッド、主にUseUrls拡張メソッドを追加し、プログラムを生成します。
appsettings.json
画像
注意:実行する前に、あらかじめ
AspNetCoreUrl.exe
ファイルをデフォルトの状態、つまり URL を設定していない状態にします。 そうしないと、設定ファイルの設定がコード内のメソッドを上書きしてしまいます。
方法5 Kestrelを使用する
この方法は、Kestrelを使用する場合にのみ有効であるため、公式ドキュメントには記載されていません。ASP.NET Coreアプリケーションを作成する場合、アプリケーションのホストにはデフォルトでKestrelが使用され、このメソッドを使用するための対応するアプリケーションシナリオがありますので、以下にその使用方法を簡単に説明します。 /以下は、このメソッドの使用方法について簡単に説明したものです。
開く
{
"urls":"http://localhost:7002;http://localhost:7012"
}
ファイルを編集し
Program.cs
メソッド
CreateHostBuilder
画像
優先順位
先ほど紹介した5つのメソッドはそれぞれ独立して動作していますが、この5つのメソッドを同時に使用した場合、どのような効果があるのでしょうか。ここでは、テストを容易にするために、各メソッドは異なるポートを使って区別していますが、すべてのメソッドを使って実行した結果を以下に示します。
画像
このように、実質的に使われているのはKestrelメソッドですが、今度はこのようにKestrelをコメントアウトして実行すると、次のような結果が得られます。
この時点でコマンドライン引数方式が有効であることがわかります。コマンドライン引数方式を使用しない場合、実行結果は次のようになります。
有効になっているのは設定ファイル内の設定ですが、今度は設定ファイル内のurlsの設定を削除して、以下のように実行した結果です。
有効なのはUseUrls拡張メソッドです。ここでUseUrlsメソッドのコードをコメントアウトして実行すると、次のような結果が得られます。
有効なのは環境変数で、環境変数が設定されていない場合はデフォルト値が使用されます、つまり
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
// Use UseUrls to set the port and protocol to listen on
webBuilder.UseUrls("http://localhost:7003", "https://localhost:7013");
});
と
appsettings.json
.
概要
この記事では、ASP.NET CoreでURLを設定する一般的な方法をいくつか紹介しました、あなたはプロジェクトの実際の状況に応じて、1つまたは複数の方法を選択することができます、あなたが同時にURLの設定のいくつかの方法を使用する場合は、設定の優先順位に注意する必要があります、テスト後
テストの結果、以下のことが判明しました。
{コード
自分で試してみたいという方は、コードアドレスが
gitee
https://gitee.com/gyhgis
github
https://github.com/gyhgis
URLを設定するには、より関連するASP.NET Coreは、URLの内容を設定するには、以前の記事を検索してくださいまたは次の関連記事を閲覧し続けることは、スクリプトの家をサポートすることを願っています!.
関連
-
.netcoreプロジェクトでIStartupFilterを使用するためのチュートリアル
-
pythonでpillowをインストールする3つの方法
-
.NET 6:.NETのロギングコンポーネントlog4netを使用する。
-
30分でわかるコング経由の.NETゲートウェイ
-
net core downlink tracking skywalking インストールと使いやすいチュートリアル
-
swagger uiをasp.net coreに統合する原理
-
認証プロセスの記録にjwtを使用したネット
-
再起動を伴わないNET5の設定変更は自動的に反映される
-
asp.net core3.1 cookieとjwtのハイブリッド認証による多様な認証ソリューションの実現
-
非同期タスクキャンセルと監視のネット実装
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン