下麵針對 ASP.NET Core 中修改預設埠的五種常用方法的詳細示例,分別對應 appsettings.json 配置 Kestrel 的 Endpoint、使用 UseUrls 方法、命令行參數方法、host.json 配置方法和使用 Docker 的方式。 方法一:appsettings. ...
下麵針對 ASP.NET Core 中修改預設埠的五種常用方法的詳細示例,分別對應 appsettings.json 配置 Kestrel 的 Endpoint、使用 UseUrls 方法、命令行參數方法、host.json 配置方法和使用 Docker 的方式。
方法一:appsettings.json 配置 Kestrel 的 Endpoint
- 在 appsettings.json 中添加埠配置:
{
"Kestrel": {
"EndPoints": {
"Http": {
"Url": "http://localhost:5001"
}
}
}
}
- 在 Startup.cs 中讀取配置:
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
public class Startup
{
private readonly IConfiguration _configuration;
public Startup(IConfiguration configuration)
{
_configuration = configuration;
}
public void ConfigureServices(IServiceCollection services)
{
// 添加服務配置
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
// 其他中間件配置
var url = _configuration["Kestrel:EndPoints:Http:Url"];
// 使用 Kestrel Endpoint
app.Run(async (context) =>
{
await context.Response.WriteAsync($"Hello from {url}!");
});
}
}
方法二:UseUrls 方法
在 Program.cs 中使用 UseUrls 方法來指定應用程式的 URL。
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseUrls("http://localhost:5001", "https://localhost:5002"); // 在這裡指定埠號
webBuilder.UseStartup<Startup>();
});
}
方法三:命令行參數方法
通過命令行參數在啟動應用程式時指定埠。
dotnet run --urls "http://localhost:5001"
方法四:host.json 配置方法
在項目根目錄下創建 hosting.json 文件,指定埠配置。
{
"urls": "http://localhost:5001"
}
方法五:使用 Docker 方法
在 Dockerfile 中設置環境變數,然後在 docker-compose.yml 文件中映射埠。
Dockerfile:
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1
WORKDIR /app
COPY bin/Release/netcoreapp3.1/publish/ App/
ENTRYPOINT ["dotnet", "App/YourApp.dll"]
docker-compose.yml:
version: '3.4'
services:
web:
build:
context: .
dockerfile: Dockerfile
ports:
- "5001:80" # 映射容器埠到主機埠
通過以上五種方法,你可以根據需要選擇適合你的項目的方式來修改 ASP.NET Core 應用程式的預設埠。請根據你的需求選擇其中一種或多種方法。