ASP.NET Core開發-如何配置Kestrel 網址Urls


ASP.NET Core中如何配置Kestrel Urls呢,大家可能都知道使用UseUrls() 方法來配置。

今天給介紹全面的ASP.NET Core 配置 Urls,使用多種方式配置Urls。

讓你了解ASP.NET Core Kestrel 的地址設置。

下面我們就來了解如何配置。我將介紹4種方式來配置Urls。

 

首先我們新建一個ASP.NET Core 空應用程序。

UseUrls

大家最熟悉的一種也就是使用UseUrls 。下面我們就來實際使用。

UseUrls 方法可以使用多個地址,也可以使用一個地址。

單個網址

UseUrls("http://localhost:5001")

多個網址

UseUrls("http://localhost:5001", "http://localhost:5002", "http://*:5003")//多個地址 *代表綁定所有本機地址 可以局域網訪問,擁有外網ip 就可以外網訪問

所有的代碼都在 Program.cs Main 方法里

        public static void Main(string[] args)
        {
            var host = new WebHostBuilder()
                .UseKestrel()
                .UseContentRoot(Directory.GetCurrentDirectory())
                .UseIISIntegration()
                .UseUrls("http://localhost:5001", "http://localhost:5002", "http://*:5003")
                .UseStartup<Startup>()
                .Build();

            host.Run();
        }

使用Kestrel運行程序,http://localhost:5001 http://localhost:5002 http://localhost:5003 均可訪問。

配置文件

下面使用配置文件來設置網址。

首先在項目中添加一個ASP.NET 配置文件hosting.json,在配置文件中加入server.urls 節點。

{
  "server.urls": "http://localhost:5001;http://localhost:5002;http://*:5003"
}

這里首先需要添加兩個引用

    "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0",
    "Microsoft.Extensions.Configuration.Json": "1.0.0"

然后Program.cs

        public static void Main(string[] args)
        {
            var config = new ConfigurationBuilder()
                .SetBasePath(Directory.GetCurrentDirectory())
                .AddJsonFile("hosting.json", optional: true)
                .Build();
            var host = new WebHostBuilder()
                .UseConfiguration(config)
                .UseKestrel()
                .UseContentRoot(Directory.GetCurrentDirectory())
                .UseIISIntegration()
                .UseStartup<Startup>()
                .Build();

            host.Run();
        }

使用Kestrel運行程序,http://localhost:5001 http://localhost:5002 http://localhost:5003 均可訪問。

命令行參數

下面使用命令行參數來設置網址。

首先我們需要添加

"Microsoft.Extensions.Configuration.CommandLine": "1.0.0"

然后Program.cs

        public static void Main(string[] args)
        {
            var config = new ConfigurationBuilder()
                .AddCommandLine(args)
                .Build();

            var host = new WebHostBuilder()
                .UseConfiguration(config)
                .UseKestrel()
                .UseContentRoot(Directory.GetCurrentDirectory())
                .UseIISIntegration()
                .UseStartup<Startup>()
                .Build();

            host.Run();
        }

 

我們到項目目錄使用命令

dotnet run --server.urls "http://localhost:5001;http://localhost:5002;http://*:5003"

然后訪問 http://localhost:5001 http://localhost:5002 http://localhost:5003 均可訪問。

環境變量

這里我們可以通過環境變量來設置網址。

我們可以設置系統的環境變量,也可以在VS里設置只用於調試。

首先更改Program.cs 

        public static void Main(string[] args)
        {
            //環境變量
            var config = new ConfigurationBuilder()
                .AddEnvironmentVariables("LineZero_")
                .Build();

            var host = new WebHostBuilder()
                .UseConfiguration(config)
                .UseKestrel()
                .UseContentRoot(Directory.GetCurrentDirectory())
                .UseIISIntegration()
                .UseStartup<Startup>()
                .Build();

            host.Run();
        }

 

在項目右鍵屬性-》調試 ,這里我們添加變量。

添加一個名稱為: LineZero_SERVER.URLS 值為:http://localhost:5001;http://localhost:5002;http://*:5003

 

然后啟動程序,http://localhost:5001 http://localhost:5002 http://localhost:5003 均可訪問。

這里我是直接在VS 里添加環境變量,只作用調試環境,如果大家希望系統級別可以使用,就在系統下設置環境變量。

順便講解一下 ASPNETCORE_ENVIRONMENT 這里就是環境變量,為何我們在VS 調試的時候看到的 Development,就是這個環境變量控制的。

 

如果你覺得本文對你有幫助,請點擊“推薦”,謝謝。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM