我正在开发一个 ASP.NET Core 项目,最近在 VS 2022 中从 .NET 6 升级到 .NET 9。
在过去的几天里,由于(对我来说)未知的原因,在部署(到本地文件夹)后,我无法在本地主机 5001 端口上运行该应用程序。
当我在
appsettings.json
中使用下面的详细信息时,部署的应用程序可以在端口 5001 上正常运行:
"Kestrel": {
"Endpoints": {
"Http": {
"Url": "http://127.0.0.1: 5000"
},
"Https": {
"Url": "https://localhost: 5001"
}}}
但是我无法从 VS 启动它。我没有对
launchsettings.json
或 program.cs
进行任何手动更改,我使用 app.UseHttpsRedirection()
是否可以为开发和部署设置默认设置?我在 .NET 6 中没有遇到任何麻烦,并且与端口完全无关。
好吧,我设法自己找到了答案,虽然我没有找到VS这种行为的原因,即部署一个仅监听端口5000的应用程序。我所做的 - 最初,遵循Andrew Lock文章中的提示这里,我将这段代码添加到
program.cs
:
builder.WebHost.UseUrls("http://localhost:5000", "https://localhost:5001");
它有助于正确设置用于部署的端口,还可以用于调试的相同端口。我更喜欢为已部署的实例使用不同的端口,并为正在开发的实例使用不同的端口。最后我删除了上面的代码,并在
launchsettings.json
中设置了一对端口用于开发,在program.cs
中我添加了以下内容:
if (!app.Environment.IsDevelopment())
{
app.Urls.Add("http://localhost:8000");
app.Urls.Add("https://localhost:8001");
}
现在它可以按需要工作了。希望它也能帮助任何人。