【问题标题】:Machine.config alternative in AzureAzure 中的 Machine.config 替代方案
【发布时间】:2013-08-22 15:37:09
【问题描述】:

我有一个连接到开发/生产环境数据库的网络服务。

我在服务器的 machine.config 文件中管理两个环境的连接字符串。

例如,生产服务器中的 machine.config 将包含如下内容:

<add key="MyDatabase" value="productsConnString..." />

并且开发服务器 machine.config 将具有以下设置:

<add key="MyDatabase" value="devConnString..." />

当然,当我在代码中连接到数据库时,我会调用ConfigurationManager.AppSettings["MyDatabase"] 并加载正确的连接字符串。

有没有办法在 Azure 环境中实现相同的抽象级别?

我阅读了一些解释配置转换的文章,但如果我使用它,我需要将连接字符串复制并粘贴到每个应用程序(以防我拥有的不仅仅是那个 WebService)。

Azure 中是否有 machine.config 的替代方案?也许是某种订阅级别的配置文件?

谢谢!!

【问题讨论】:

    标签: c# web-services azure web-config azure-sql-database


    【解决方案1】:

    我会认真考虑使用云服务配置文件(假设这是一个 PaaS 解决方案)。它不仅允许您将应用程序部署包与配置设置分开(就像您正在做的那样),而且还使您能够“即时”调整这些更改以适应故障转移之类的事情。如果您采取额外的步骤来创建自己的配置提供程序,它还为您提供了一些简单的方法来支持这两种模型。

    【讨论】:

    • 好的,我已经阅读了更多内容,但我仍然不知道您将如何处理这个问题。你是说我可以使用不同的设置部署到生产和开发吗?我如何在云服务部署中实现这一点?
    • 您可以拥有多个 cscfg 文件,一个用于 dev、prod、prod2 等等。当您部署到 Windows Azure 时,请使用适合您正在部署的环境的 cscfg 文件。有些人甚至通过让他们的构建/部署服务器了解环境并选择适当的配置文件来自动执行此操作。
    • 但是我需要将这些设置添加到每个应用程序中! (ee db 连接字符串、存储连接字符串、更多环境级别设置)。如何创建可重用的环境级别配置?我暂时没有构建服务器...
    • 不,您只需要引用设置名称,并有一个单独的配置文件可以部署到每个环境。 cscfg 文件是您的“可重用环境级别配置”。
    • 但我有 5 种不同的云服务。这意味着我需要为所有这些复制和相同的配置值,这样就不能重用是吗?还是我错过了什么
    【解决方案2】:

    同意 Brent - 使用云服务配置文件并使用 CloudConfigurationManager.GetSetting("settingsKey") 获取设置 - 如果您首先在 Azure 或模拟器中,这将使用云服务配置,如果在那里找不到密钥,它也会查找appSettings 中的 web.config 文件。

    【讨论】:

    • 云设置文件是按订阅定义的吗?如何使用此文件实现环境分离?
    • 云设置文件是按部署定义的。在您的云项目中,您将为您定义的每个构建配置提供一个服务定义文件:例如ServiceConfiguration.DEV.cscfg、ServiceConfiguration.TEST.cscfg 和 ServiceConfiguration.PROD.cscfg。当您打包/发布项目时,您需要指定构建和服务配置。
    • 知道了...有没有办法将这些设置保存在服务器上(就像我对 machine.config 所做的一样)并避免为生产进行不同的构建?目前(在迁移到 azure 之前)我可以简单地将我的项目的相同压缩文件从 dev 放到生产中,它会起作用。
    • cspkg 是您的“应用程序 zip”。它包含可执行代码。这对于 dev 和 prod 可以是同一个文件。只有 cscfg 文件需要在两者之间有所不同。
    • 否 - Azure 云服务是在每次新部署时创建的 VM。您不能计划在云服务中保存任何内容。您可以使用 BLOB 进行长期存储。不同环境的首选方法是描述的 cscfg 文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-10
    • 2013-11-24
    • 2019-11-11
    • 2018-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多