gpt4 book ai didi

c# - 部署到多个 Azure 环境(开发、测试、生产)的推荐方法是什么?

转载 作者:行者123 更新时间:2023-11-30 22:05:13 27 4
gpt4 key购买 nike

我有一个使用 mvc5 的 C# Web 应用程序。它目前在 Azure 上运行,我有一个开发、测试和生产实例。我需要做什么才能确保数据库连接字符串随着应用程序推送到每个环境而自动更改?我知道这可以通过 web.config 实现,因为您可以定义 Web.Debug.Config 等,但是对于 Azure 上的不同辅助角色,我该如何处理呢?我一直在互联网上寻找解决方案。简而言之,我想对多个 web.config 文件执行相同的方法,但对于 Azure。

作为一些额外的背景,对于我的解决方案,我将我的存储库分解为一个单独的项目,并且我尝试从配置文件中获取连接字符串(假设domain.dll是包含它的库的名称) )。首先,当我只使用 web.config 时,此方法有效,但当我必须从另一个辅助角色运行我的域 DLL 文件时,配置开始返回 null;因为当从不同的工作进程(非网络)运行时,此代码不会运行。这似乎引入了一个有趣的问题,如果我需要在Web之外和Azure之外使用domain.dll代码怎么办?如何仍然保持 Azure 和 web.config 提供的连接字符串优势?

最佳答案

假设:您正在使用网络服务,而不是网站。是有区别的。

有两种方法可以获得您需要的东西:

  1. 对于辅助角色,您几乎可以按照与 web.config 中相同的方式进行 app.config 转换。只有您需要使用 SlowCheetah 来完成此操作。有一个 nuget 包,还有 VS 扩展来创建转换文件。这种方法有太多的花哨之处。我从来不喜欢它,所以继续选择第二个选项。

  2. 如果您运行 Web 服务,则可以将连接字符串指定为辅助角色配置的一部分。转到您的 Azure 项目并打开辅助角色的属性: Worker Role configuration

您可以在其中添加数据库连接字符串。并为您运行的每个环境(开发、测试、生产)创建配置。并为每个环境放置不同的连接字符串。

要获取连接字符串,请执行:

CloudConfigurationManager.GetSetting("DatabaseConnectionString")

部署站点后,您将在 Azure 门户的配置选项卡中看到这些配置值。

关于c# - 部署到多个 Azure 环境(开发、测试、生产)的推荐方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24516692/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com