修改 ASP.NET Core 应用程序运行后的默认端口

发布于:2024-08-20 ⋅ 阅读:(38) ⋅ 点赞:(0)

可以通过以下几种方法来实现。具体选择哪种方法取决于项目需求和环境设置。

方法 1:使用 appsettings.json 配置文件

你可以在 appsettings.json 中设置 Kestrel 的配置来更改默认端口。

  1. 打开 appsettings.json 文件,添加 Kestrel 配置:

    { 
        "Kestrel": {
          "Endpoints": { 
             "Http": { 
                "Url": "http://0.0.0.0:5000" 
               } 
            } 
        } 
    } 

    这个配置将 Kestrel 的监听端口设置为 5000。你可以根据需要更改端口号。

  2. 确保在 Program.cs 中配置 Kestrel 服务器时,使用 ConfigureWebHostDefaults 方法:

    var builder = WebApplication.CreateBuilder(args); 
    // Kestrel 配置已经在 appsettings.json 中设置,不需要额外配置 
    var app = builder.Build();
    app.Run(); 

方法 2: 使用 UseUrls 方法

你可以通过在 Program.cs 文件中使用 UseUrls 方法直接设置应用程序的默认 URL 和端口。

var builder = WebApplication.CreateBuilder(args); 
// 设置应用程序默认的 URL 和端口 
builder.WebHost.UseUrls("http://0.0.0.0:5000");
var app = builder.Build(); 
app.Run(); 

在这个例子中,应用程序将会监听所有网络接口(0.0.0.0)上的 5000 端口。

方法 3:使用 launchSettings.json 文件(适用于开发环境)

如果你只想在开发环境中更改端口,你可以修改 launchSettings.json 文件。

  1. 找到 Properties 文件夹下的 launchSettings.json 文件。

  2. 找到与你的应用程序配置对应的部分(例如 IIS ExpressProject)。

    { 
      "profiles": { 
         "IIS Express": { 
           "commandName": "IISExpress", 
           "launchBrowser": true, 
           "environmentVariables": {
              "ASPNETCORE_ENVIRONMENT": "Development"  
           }, 
         "iisSettings": {
           "windowsAuthentication": false, 
           "anonymousAuthentication": true,
           "iisExpress": { 
              "applicationUrl": "http://localhost:5000", 
              "sslPort": 0 
            }
          } 
       }, 
      "MyProjectName": { 
          "commandName": "Project", 
          "dotnetRunMessages": true, 
          "launchBrowser": true, 
          "applicationUrl": "http://localhost:5000", 
          "environmentVariables": { 
                "ASPNETCORE_ENVIRONMENT": "Development" 
             } 
           }
        } 
    } 

    applicationUrl 更改为你想要的 URL 和端口,例如 http://localhost:5001

方法 4:使用环境变量

你可以使用环境变量来设置 ASP.NET Core 应用程序的默认 URL 和端口。

  1. 设置 ASPNETCORE_URLS 环境变量:

    • 在 Windows 上:

      $env:ASPNETCORE_URLS="http://0.0.0.0:5000" 
    • 在 Linux 或 macOS 上:

      export ASPNETCORE_URLS="http://0.0.0.0:5000" 
  2. 启动应用程序时,ASP.NET Core 将使用这个环境变量来确定监听的 URL 和端口。

方法 5:使用 ConfigureKestrel 方法

你可以在 Program.cs 中直接配置 Kestrel 服务器的监听端口:

var builder = WebApplication.CreateBuilder(args); 
builder.WebHost.ConfigureKestrel(serverOptions => { 
         serverOptions.ListenAnyIP(5000); // 设置 Kestrel 监听 5000 端口 
         }); 
var app = builder.Build(); 
app.Run(); 

选择适合的方式

  • 开发环境:如果只是在开发环境中调整端口,建议使用 launchSettings.json 文件来进行配置。
  • 生产环境:建议使用 appsettings.jsonUseUrls 方法设置固定的端口。同时,可以结合环境变量在不同的部署环境中灵活调整端口。

通过这些方法,可以更改 ASP.NET Core 应用程序运行时的默认端口,并根据不同的环境需求灵活配置应用程序。