【问题标题】:How to set the environment in a docker with Visual Studio 2019 in ASP.NET Core 3.1?如何在 ASP.NET Core 3.1 中使用 Visual Studio 2019 在 docker 中设置环境?
【发布时间】:2021-03-22 08:57:58
【问题描述】:

在 ASP.NET Core 3.1(带有 Docker 桌面的 Win10)中的 Visual Studio 2019 中苦苦挣扎。 我只想将“ASPNETCORE_ENVIRONMENT”从“开发”更改为“生产”。

所以我所做的就是编辑 launchSettings.json

并编辑环境变量部分:

"profiles": {

   ///cut other

   "Docker": {
        "commandName": "Docker",
        "launchBrowser": true,
        "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}/version",
        "environmentVariables": {
           "ASPNETCORE_ENVIRONMENT": "Production",
           },

        "publishAllPorts": true,
        "useSSL": false
   }
 }

当我在 Visual Studio 中开始调试时,我得到:“无法配置 HTTPS 端点”, 除非它与“开发”配合得很好。 尽管如此,容器在 docker inspect 中仍然显示“开发”

当我添加"ASPNETCORE_URLS": "http://+:80" 容器启动但仍显示 ASPNETCORE_ENVIRONMENT = Development。执行“ENV”时也在docker内部。

真的不知道,我还能尝试什么。

希望得到您的指导。

提前致谢。

【问题讨论】:

    标签: c# docker asp.net-core visual-studio-2019 docker-desktop


    【解决方案1】:

    你会发现这个问题很有帮助:ASPNETCORE_ENVIRONMENT in Docker

    建议的解决方案 - 在 Dockerfile 的 ENTRYPOINT 中指定环境: ENTRYPOINT ["dotnet", "CoreDocker.dll", "--environment=Production"]

    【讨论】:

    • 是的,谢谢我已经浏览了这个线程并测试了所有内容。不适合我。它还包含 docker compose,我这里没有使用,是 core 2.x
    【解决方案2】:

    可能是UI Bug,你可以检查一下

    Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
    

    在我的情况下,应用程序显示“生产”, 但 Visual Studio 容器调试工具显示“开发”。

    此外,您可以添加“appsetting.Production.json”来仔细检查配置是否更改为生产,希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 2020-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-18
      • 2016-11-04
      • 2020-07-06
      • 2019-07-20
      • 2020-03-19
      相关资源
      最近更新 更多