如何更改我的 .NET core 6 API 的默认端口号

Posted

技术标签:

【中文标题】如何更改我的 .NET core 6 API 的默认端口号【英文标题】:How to change default port no of my .NET core 6 API 【发布时间】:2022-01-16 19:43:03 【问题描述】:

我正在尝试从项目的属性部分更改默认端口,但我看不到任何选项。

我正在使用带有 .NET core 6 的 Visual Studio 2022。

【问题讨论】:

这是一个 ASP.NET Core API 吗?还是其他类型的? 是的,是.net core api 我建议添加[asp.net-core]标签。 哎呀我错过了,谢谢 【参考方案1】:

端口是在端点中定义的,有多种方法可以改变它们:

出于开发目的

您可以更改属性文件夹内的launchSettings.json 文件:


  "iisSettings": 
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": 
      "applicationUrl": "http://localhost:22963",
      "sslPort": 44349
    
  ,
  "profiles": 
    "UrlTest": 
      "commandName": "Project",
      "dotnetRunMessages": true,
      "launchBrowser": true,
      "applicationUrl": "https://localhost:7244;http://localhost:5053",
      "environmentVariables": 
        "ASPNETCORE_ENVIRONMENT": "Development"
      
    ,
    "IIS Express": 
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": 
        "ASPNETCORE_ENVIRONMENT": "Development"
      
    
  

服务器端点

在根目录有一个名为appsettings.json的文件,你可以更改服务器相关的配置,这是一个Kestrel的例子:


  "Logging": 
    "LogLevel": 
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    
  ,
  "AllowedHosts": "*",
  "Kestrel": 
    "Endpoints": 
      "Http": 
        "Url": "http://localhost:5400"
      ,
      "Https": 
        "Url": "https://localhost:5401"
      
    
  

从命令行

您可以使用--urls 参数运行应用程序来指定端口:

dotnet run --urls http://localhost:8076

环境变量

您可以设置ASPNETCORE_URLS

来自源代码

您可以将 Url 传递给Run 方法:

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

app.MapGet("/", () => "Hello World!");

app.Run("http://localhost:6054");

或UseUrl 扩展方法,但目前由于错误#38185 无法正常工作:

var builder = WebApplication.CreateBuilder(args);
builder.WebHost.UseUrls("http://localhost:3045");
var app = builder.Build();

app.MapGet("/", () => "Hello World!");

app.Run();

来源:

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel/endpoints?view=aspnetcore-6.0

关于部署的好文档: https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/?view=aspnetcore-6.0

【讨论】:

在 Ubuntu 上使用 Apache 和反向代理尝试了“服务器端点”方法,但没有成功,但使用“来自源代码”工作正常【参考方案2】:

您可以从启动配置文件设置中进行设置

点击运行按钮上的下拉菜单。

现在点击调试属性。 单击该启动配置文件窗口将打开。

现在您可以从此处更改应用 URL 的端口。

编辑:添加

您也可以从项目配置文件中更改它,如下所示。

【讨论】:

【参考方案3】:

快速解决方案:

if (app.Environment.IsDevelopment())

    app.Run();

else

    app.Run("http://127.0.0.1:8080");

【讨论】:

以上是关于如何更改我的 .NET core 6 API 的默认端口号的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 ASP.NET Core 3 中的中间 Web API 传递未更改的 HTTP 响应?

如何更改 .NET Core 3.1 API 中的路由错误

如何更改 ASP.NET Core API 中的默认控制器和操作?

如何使用具有最小 API .Net 6 的 Asp.net core Identity 运行迁移(第一次迁移)

使用 .NET 6 在 ASP.NET Core 中处理 API 调用中的空子类

无法从 ASP.NET Core 6.0 API NServiceBus 端点订阅事件