运行.NET Core API Linux环境启动配置文件

干扰器

因此,我试图使.NET Core API应用程序在不同的环境设置下运行。我一直在阅读文档,并且据我所知,我一直按照说明进行操作。但是,当我在VS之外运行服务时,由于找不到连接字符串而使其崩溃。我显然缺少基本的东西。

我在launchSettings.json“开发”和“登台”中设置了两个配置文件

"profiles": {
  "IIS Express": {
    "commandName": "Project",
    "environmentVariables": {
      "ASPNETCORE_ENVIRONMENT": "Development"
    }
  },
  "Development": {
    "commandName": "Project",
    "environmentVariables": {
      "ASPNETCORE_ENVIRONMENT": "Development"
    }
  },
  "Staging": {
    "commandName": "Project",
    "environmentVariables": {
      "ASPNETCORE_ENVIRONMENT": "Staging"
    }
  }

我有以下配置文件。

appsettings.json
appsettings.Development.json
appsettings.Staging.json

我的代码中也包含以下代码Startup.cs

var builder = new ConfigurationBuilder()  
    .SetBasePath(env.ContentRootPath)
    .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
    .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: false, reloadOnChange: true)
    .AddEnvironmentVariables();

Configuration = builder.Build();

当我调试它时,我可以看到.AddJsonFile($"appsettings.{env.EnvironmentName}.json"正在加载预期的文件。但是,当我将其发布到目录并尝试以connectionString值us运行它时null

appsettings.json不包含连接字符串的值。它位于两个与环境有关的文件中,定义如下:

"DefaultConnection": {
    "ConnectionString":
        "Server=name;Port=3307;Database=name;User Id=name;Password=name;"
},

由于这一切都可以在VS中使用,因此我确信这都是正确的。但是,当我尝试运行它时,BOOM!

dotnet MyDll.dll --launch-profile Staging

我刚刚注意到,它--launch-profile仅适用于dotnet run当我尝试运行该应用程序时正在寻找Production.json文件。如何仅通过dotnet命令而不是dotnet run命令使用各种配置文件

干扰器

因此,经过一番戳后。看来您必须在服务器上设置环境变量,我误认为这是某种“运行时环境”变量,不是,它是完整的OS级环境变量:

LINUX

export ASPNETCORE_ENVIRONMENT =暂存

电源外壳

$ Env:ASPNETCORE_ENVIRONMENT =“分期”

视窗

设置ASPNETCORE_ENVIRONMENT =暂存

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

优雅地杀死在Linux上运行的.NET Core守护程序

ASP.NET Core:“该项目不知道如何运行配置文件Docker。” 在Visual Studio 2017上

如何运行.Net Core dll?

从.NET Core运行PowerShell

从.Net Core API返回html文件

如何为在Docker容器中运行的.NET Core Web API服务提供应用程序配置?

是否可以在ASP.NET Core API中运行Umbraco?

.NET Core运行时

流利的迁移:在Process .net core中运行迁移时如何指定配置文件

NSwag .NET Core API版本控制配置

.NET Core 2,DI,配置文件

Arch Linux上的asp.net core 2.1无法运行

.NET Core Web API:可以在appsettings.json配置文件中分配控制器路由吗?

如何在Nginx服务器中将ASP.NET Core Web API dll文件作为服务运行?

通过.NET Core Api从请求获取文件

无法在docker linux中运行Asp.Net Core

如何在端口5003上运行ASP .NET Core API?

在F#、. Net Core中,项目不知道如何运行配置文件IIS Express

.Net Core API从Json文件读取内容

VSCode无法运行.net Core API

.NET Core 配置文件的工作原理

AWS API Gateway to .NET Core Web Api 在 ECS 中运行

.NET Core 2 API 属性路由配置

上传文件 .NET Core Web API 的问题

Docker:运行 docker 后无法在浏览器上启动 .Net Core 3.1 Web Api

ExceptionFilter 不运行 .NET Core Web Api

从作为 AWS Lambda 函数运行的 AWS ApiGateway ASP.NET Core 3 Web API 返回文件

通过 API 发送/上传文件 - .Net Core

如何在 docker 容器中运行已编译的 SPA 静态文件以及 ASP.NET Core Web API 发布?