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

2024-04-26

所以我试图让 .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重视我们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命令?


所以,经过一番摸索之后。看来你必须在服务器上设置环境变量,我错误地认为这是某种“运行时环境”变量,不,它是一个完整的操作系统级别环境变量:

LINUX

导出 ASPNETCORE_ENVIRONMENT=暂存

电源外壳

$Env:ASPNETCORE_ENVIRONMENT="暂存"

WINDOWS

设置 ASPNETCORE_ENVIRONMENT=暂存

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

运行 .NET Core API Linux 环境启动配置文件 的相关文章

随机推荐

  • 强制 C++ 编译器检查异常处理

    我想知道是否有一些编译器参数 最好是在 gcc g 中 它将缺少 try catch 块视为错误 这是java中的标准行为 我一直很喜欢它 由于 Java 中的检查异常依赖于throw签名 您可以阅读为什么您不想使用throwC 中的函数签
  • MySQL 唯一 id 或组合 id

    我的项目和开发人员计划的结构如下 developer table id developer name etc project table id project name etc developer project table 因为一个开发人
  • php zlib:如何从字符串变量动态创建内存中的zip文件?

    这就是我需要的 a array folder gt anyfolder filename gt anyfilename filedata gt anyfiledata 我需要使用 a 中的压缩数据创建一个变量 zip 并将此 zip 输出到
  • Sass 更改监视间隔,更频繁地编译

    我正在使用 sass 将 scss 编译为 css 每次保存后 大约需要 15 20 秒才能编译为 scss 文件到 css 因此我需要刷新几次才能看到预期结果 有没有办法告诉 Sass 更频繁地检查更改 这是我使用的命令 sass wat
  • C# 中的随机数 [重复]

    这个问题在这里已经有答案了 可能的重复 随机数生成器没有按我计划的方式工作 C https stackoverflow com questions 767999 random number generator not working the
  • SharePoint 404 页面

    最好的位置是在 web config customError 部分中为 SharePoint 设置 404 错误页面 还是网站集 Web 应用程序上有配置设置 请阅读这个博客 http blogs msdn com jingmeili ar
  • 退出 glutFullScreen()

    我不明白为什么当我按 f 时它进入全屏但不退出全屏 在这个方法的开头我已经设置了bool fullscreen false 这是我的切换代码 case f toggle screenmode if fullscreen glutFullSc
  • 如何在 r 中绘制 LDA 的双标图?

    我使用该函数进行了线性判别分析lda 来自 MASS 包 现在我会尝试绘制像 ade4 包 forLDA 中那样的双标图 你知道我该怎么做吗 如果我尝试使用biplot 功能不起作用 例如 如果我使用 Iris 数据并制作 LDA dis2
  • 如何在 Scala Slick 中运行补丁/部分数据库更新?

    我们想运行补丁 部分UPDATE使用 Slick 3 0 0 以便我们只修改记录中的某些字段 确切地说哪些字段将被更新只有在运行时才知道 例如 对于一个REST PATCH request http restcookbook com HTT
  • C++11 中引入的可选固定宽度整数类型的支持状态

    C 11终于引入了固定宽度整数类型
  • 如果单元格为空白,如何停止公式?

    如果左侧单元格中没有数据 如何停止公式运行 我正在尝试弄清楚如何使用固定时间和动态时钟来显示经过的时间 我的固定时间在 Cell D5 中 动态时钟在 Cell 中J4 附图 为了计算出 经过的时间 我的公式如下 J4 D5 效果很好 但是
  • d3.js:是否可以通过键而不是索引来进行转换?

    我有不同长度的数据数组 x值 年 是有限年数的一部分 例如 var data Year 2008 Value 5 Year 2009 Value 6 or var data Year 2007 Value 8 Year 2009 Value
  • WordPress 操作钩子未触发(wpforms)

    最终完成了一个包含 WordPress 网站的项目 我正在尝试将 WPforms 制作的表单中的数据发布到外部 API 不是一个 WordPress 专家 但我读到我可以通过编写自己的插件来连接其他插件的操作 这是我的插件
  • Ember.js + Mirage:在集成测试中拉取模拟关系

    我有一个使用的组件this get model property 并且它按预期工作 对于我的集成测试 我使用 Mirage 它适用于我的所有其他测试 包括集成测试 但是当我测试这个特定组件时 我得到 TypeError Cannot rea
  • 使用 goto 跳过变量声明?

    我在读C 编程 现代方法由 K N King 学习 C 编程语言 并指出goto语句不得跳过可变长度数组声明 但现在的问题是 为什么goto跳转允许跳过 固定长度数组声明和普通声明吗 更准确地说 根据 C99 标准 此类示例的行为是什么 当
  • onErrorResume 和 doOnError 的区别

    Spring项目Reactor中 有什么区别onErrorResume and doOnError 我什么时候应该每个人 onErrorResume 当上游发生异常时提供回退流 doOnError 副作用运算符 假设您想记录上游发生的错误
  • 有没有一种方法可以在不登录用户的情况下使用 Adob​​e Creative SDK?

    Aviary 不需要用户进行任何登录 我想使用它 但 Creative SDK 要求用户登录 Adob e 帐户 我只想能够在设备上进行简单的编辑 这可能吗 图像编辑器和授权目前 Creative SDK 图像编辑器组件不需要登录 并且未来
  • python pandas 特殊字符作为分隔符

    我有一个带有特殊字符 作为分隔符的文本文件 我在 read csv 命令中复制粘贴了这个特殊字符作为分隔符 但出现以下错误 ParserWarning Falling back to the python engine because th
  • 前摄器和异步写入

    升压asio http www boost org doc libs 1 46 1 doc html boost asio html实现基于前摄器设计模式ACE前摄器 http www cse wustl edu schmidt PDF p
  • 运行 .NET Core API Linux 环境启动配置文件

    所以我试图让 NET Core API 应用程序在不同的环境设置下运行 我一直在阅读文档 据我所知 我已按照说明进行操作 然而 当我在 VS 之外运行该服务时 由于无法找到连接字符串 它会崩溃 我显然错过了一些基本的东西 我已经设置了两个配