我通过 Visual Studio 2022 创建了一个 .net Core 6 API。它工作正常,一切正常,它启动并且 Swagger 显示我的 API 全面工作。我的其他本地应用程序可以按预期访问 API 端点。
有时,当我点击 时F5
,该应用程序会在不同的端口成功且功能齐全地启动,主要是在机器重启后。这造成了我的其他应用程序无法找到它并且必须不断重新配置的问题,这既烦人又荒谬。
但是,我所做的任何事情似乎都不会对其产生任何影响。
我经历了很多很多事情,试图找到解决方案。
我的 VS 生成的Program.cs
文件如下所示:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddXXX();
//...bunch of those
var app = builder.Build();
app.XXX()
//...bunch of those
app.Run();
此模式与我能找到的任何其他问题、答案甚至大多数教程都不匹配。我认为这可能是 .net Core 6 的新模式。
builder
, builder.Services
, 也不包含app
任何UseUrl()
看起来与 URL 相关的方法或任何东西。
该术语IHostBuilder
没有出现在应用程序的任何地方,因此任何涉及该术语的解决方案都让我迷失了方向。
根本没有出现“主机”一词Program.cs
。
appsettings.json
没有“网址”属性。添加它不会做任何事情。在这种情况下,任何应该使用它的东西都不能存在。
端口号(在我的例子中是 49153)没有出现在项目的任何地方。
launchsettings.json
指定了 applicationUrl。这是一个我从未见过的端口号。改变它没有效果。将“ASPNETCORE_URLS”添加到“environmentVariables”没有任何效果。更改此文件中的 Docker“launchUrl”确实会更改默认情况下在浏览器中打开的 URL,但随后找不到该 URL。
我对 Docker 的了解不多,我不确定这是否会影响服务器端口,但Dockerfile
似乎没有设置或引用任何端口号。