繁体   English   中英

从 Visual Studio 2019 在 Kestrel 下运行 .NET 5 Api 会忽略 launchSettings.json applicationUrl 设置

[英]Running .NET 5 Api under Kestrel from Visual Studio 2019 ignores launchSettings.json applicationUrl setting

我们有一个“只在我的机器上”的问题,没人能弄清楚。

我们有一个 .NET 5 Api,我们在 Kestrel 下运行用于开发目的。 在 Visual Studio 中运行 API 的所有其他开发虚拟机上,都会获取launchSettings.json中的值并在正确的端口上启动。 但是,在有问题的 VM 上,它仅在默认的 5000/5001 端口上启动。

这是launchSettings.json文件的条目。

"profiles": {
    "My.Api": {
        "commandName": "Project",
        "environmentVariables": {
            "LogStorageAccountConnectionString": "UseDevelopmentStorage=true",
            "ASPNETCORE_ENVIRONMENT": "Development"
        },
        "applicationUrl": "https://localhost:7001;http://localhost:7000"
    }
}

我知道有一种方法可以告诉do.net run显式忽略launchSettings.json但无法在 Visual Studio 中找到会触发该行为的设置。

我们还认为这可能是该文件夹的权限问题,因为它们有点奇怪,所以我们将我们的 repo 克隆到一个新文件夹中并再次设置 Api 以在本地运行。 它仍然在 5000/5001 上运行。

我们很多人都被难住了。 有任何想法吗?

在使用 Visual Studio 在 Kestrel 下运行.NET 5 API (以及Blazor项目)时,我也遇到了完全相同的问题。 然而对我来说,它突然来了——我成功地运行了这个项目几个星期,然后有一天它开始拒绝遵守launchSettings.json并继续在默认值5000/5001上运行。

我通过将 Visual Studio 从 16.8.3 升级到 16.8.4 解决了这个问题。 但是,由于我最初对 16.8.3 没有问题,我怀疑问题与 Visual Studio 版本无关。 我认为我的原始安装以某种方式损坏,升级只是修复了损坏。

顺便说一句,当我使用 dotnet run 从命令行运行项目时,我的launchSetting.json很荣幸。 我还可以通过在Program.cs中设置端口来使用解决方法

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>();
                webBuilder.UseUrls("https://localhost:6000");
            });

我们在 Visual Studio 2022 中也遇到了 .NET 5 和 .NET 6 的问题,唯一有效的方法是在launchSettings.jsonenvironmentVariables变量部分设置(显然未记录的)变量Urls 换句话说:

"profiles": {
    "My.Api": {
        "commandName": "Project",
        "environmentVariables": {
            "LogStorageAccountConnectionString": "UseDevelopmentStorage=true",
            "ASPNETCORE_ENVIRONMENT": "Development",
            "Urls": "https://localhost:7001;http://localhost:7000"
        }
    }
}

遗憾的是,VS 的“启动配置文件”对话框不会选取此值,也不允许您设置它,但手动编辑launchSettings.json并不会太麻烦。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM