.NET Core如何指定运行应用程序的环境

时间:2018-08-31 23:16:32

标签: c# appsettings asp.net-core-2.1

我有一个用于我的项目的开发,登台和生产服务器。但是,当我在开发服务器上运行项目时,它将在生产模式下运行。我知道了,因为它使用的是我的appsettings.Production.json中的值。

如何指定我的项目应在此特定服务器上以开发模式运行?我尝试设置环境变量ASPNETCORE_ENVIRONMENT = Development,但是没有用。

请帮助。我不知道这是如何决定使用生产环境的。任何见识都会有所帮助。

1 个答案:

答案 0 :(得分:0)

环境设置是在操作系统的环境变量(即bash配置文件)中设置的。 https://docs.microsoft.com/en-us/aspnet/core/fundamentals/environments?view=aspnetcore-2.1

但是您可以通过设置配置文件在启动时隔离环境设置。使用带有dotnet run参数的--launchprofile命令可以指定要使用的配置文件。这是Visual Studio在启动应用程序时也使用的方式。

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/environments?view=aspnetcore-2.1

在launchSettings.json中设置的变量集,您需要使用适当的“启动”配置文件进行构建和发布。

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:54339/",
      "sslPort": 0
    }
  },
  "profiles": {
    "IIS Express-local": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_My_Environment": "1",
        "ASPNETCORE_DETAILEDERRORS": "1",
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "EnvironmentsSample-staging": {
      "commandName": "Project",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Staging"
      },
      "applicationUrl": "http://localhost:54340/"
    }
  }
}