在 Azure 之前发布:
在使用 Azure 之前,我们只有位于不同环境(测试、暂存和生产等)中的只读配置文件。在发布期间,所有应用程序文件(无配置文件)都将部署到相关环境中。然后,应用程序文件将读取环境的配置文件以获取连接字符串和其他特定于环境的详细信息。我认为这是一个非常标准的设置?
Azure 之后发布:
现在我们正在将我们的 Web 应用程序迁移到 Azure Web 角色。Web 角色使用ServiceConfiguration.Cloud.cscfg
和ServiceConfiguration.Local.cscfg
文件。
发布到云服务时,需要知道连接字符串。如果我们要发布到一个测试云服务,那么ServiceConfiguration.Cloud.cscfg
需要进行相应的编辑。如果我们要发布到暂存或生产云服务,则ServiceConfiguration.Cloud.cscfg
需要进一步更改。
我更愿意在开发人员进行部署时将他们从连接字符串中抽象出来。这可以防止错误指向不正确的环境(这可能会产生巨大的影响)。如何才能做到这一点?
我知道可以在 Azure 管理门户中更改这些配置设置,但是将此步骤包含在发布过程中意味着开发人员需要访问管理门户,这不是一个理想的情况,因为仍有余地错误(加上对管理门户的“开放”访问)。
更新:
我发现您可以通过添加更多(和重命名)来管理您的服务配置文件:
然后通过一起选择正确的云服务(黑色)和正确的服务配置(红色箭头),开发人员不需要了解配置细节:
仍然存在开发人员在部署到云服务时选择错误的服务配置的问题(但也许这可以自动化到脚本中以防止这种情况发生?)
我的主要烦恼是环境类型(蓝色箭头)。这对我现在没有用了。