asp.net - Windows Azure VIP Swap,如何处理自定义 web.config 值?

标签 asp.net azure web-config

将新部署发布到云服务的暂存或生产环境很容易,但我想更频繁地使用 VIP 交换(交换生产和暂存部署)。就我而言,每个环境都有不同的 web.config 值。例如,在暂存时我的 web.config 可能有:

<appSettings>
    <add key="ConnectionStringName" value="StagingConnectionString" />
    <add key="WCFServiceUrl" value="http://somelongGUID.cloudapp.net/" />
</appSettings>

...在生产中,我会:

<appSettings>
    <add key="ConnectionStringName" value="ProductionConnectionString" />
    <add key="WCFServiceUrl" value="http://prodservice.cloudapp.net/" />
</appSettings>

发布到暂存或生产时,web.config 会根据调试或发布使用正确的值进行转换。但是,当涉及到 Windows Azure 门户上的 VIP 交换时,我必须触发交换,然后远程访问每个实例并手动更改这些值(这绝对不是正确的方法)。

如何才能更好地处理这种情况?或者是否有更好、更灵活的解决方案来处理这些自定义配置值,而不是将它们放在 web.config 中(尤其是在这种情况下)?

提前致谢。

最佳答案

使用 VIP 交换被认为是在 Web 和辅助角色中促进暂存到生产的“标准”方法。它通过更改 Azure 路由以将“生产”URL 指向“暂存”角色实例并将“暂存”URL 指向“生产”角色实例来实现此交换。

在内部,角色并不知道这种变化:它完全发生在托管进程的外部。

如果您想以这种方式使用 VIP 交换,您应该考虑将您的应用程序更改为不知道其主机环境,或者在需要时从主机读取信息。

<小时/>

生产和暂存在 Azure 中的排列方式,包应该相同:都是实时配置。该功能旨在实现高可用性部署;它不适合让角色根据是否是临时部署调用不同的服务而隐含的测试类型。

您最好使用单独的角色来执行测试;暂存仅应用于在切换当前生产部署之前测试您的部署是否成功。

关于asp.net - Windows Azure VIP Swap,如何处理自定义 web.config 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17996085/

相关文章:

c# - 尝试在 formview 中绑定(bind)下拉列表时出现空引用异常

c# - Visual Studio 使用 GIT 存储库在一个解决方案中使用 API 和网站进行发布

mongodb - 操作系统类型“Linux”不支持每个处理程序多个 VMExtension

asp.net - 外部配置文件中的 browserCaps

c# - 如果 web.config 中的连接字符串已加密,外部用户是否可以访问该站点?

c# - 有人能告诉我为什么我的标题没有出现在 asp.net c# 中吗?

c# - EF4 两个模型一个数据库,可能吗?

c# - 在 C# 的方法中返回 FileStream 是否安全?

azure - 记住 Azure Active Directory Xamarin Forms 中上次登录的用户

c# - Azure 中的 Machine.config 替代方案