天青之前释放Azure的Web角色配置设置:不同环境
使用Azure的之前,我们只想有只读配置文件坐在不同的环境(测试,分期和生产等)。在发布期间,所有应用程序文件(无配置文件)都将部署到有问题的环境中。然后应用程序文件将读取环境的配置文件以获取连接字符串和其他特定于环境的详细信息。我认为这是一个非常标准的设置?天青后
释放:
现在我们正朝着我们的web应用程序Azure的Web角色。 Web角色使用ServiceConfiguration.Cloud.cscfg
和ServiceConfiguration.Local.cscfg
文件。
当发布到云服务时,连接字符串需要知道。如果我们想要发布到测试云服务,则需要相应地编辑ServiceConfiguration.Cloud.cscfg
。如果我们想要发布到分段或生产云服务,则需要进一步更改ServiceConfiguration.Cloud.cscfg
。
我更喜欢在部署时从连接字符串中抽象开发者AWAY。这可以防止指向错误环境的错误(这可能会产生巨大的影响)。如何才能做到这一点?
我知道这些配置设置可以在Azure管理门户中进行更改,但将此步骤纳入发布过程意味着开发人员需要访问管理门户,这不是理想的情况,因为仍然有误差(加上对管理门户的“开放”访问)。
更新:
我发现,您可以通过添加更多的(和重命名)管理您的服务配置文件:通过选择正确的云服务
然后(黑色)和正确的服务配置(红色箭头),开发人员不需要知道配置的详细信息:
还有一个开发人员部署到云服务时,选择了错误的服务配置的问题(但也许这可以自动进入一个脚本来防止这种情况?)
我主要IRK是环境类型(蓝色箭头)。现在这对我来说毫无用处。
我得去核实一下,但我认为这只是让你选择的配置,而不是服务定义。因此,如果您需要不同的端点(http与https),不同的Vm大小或环境之间的其他大小,您可能会遇到问题。我的回答方面的解决方案就是这样做的。 –
@Eoin:哦,是的,关于服务定义的好处。这将是一个问题。最后一个问题:你是否能够在没有“部署包”的情况下版本控制你的代码。直接从Visual Studio发布是有点可怕的,因为如果代码已经改变,您将无法确定。 – davenewza
那么在我们的例子中,我们的源代码是否存储在我们用于源代码控制的GitHub上,因此我们有自己的流程来实现分支,锁定发布内容,然后继续在Master上进行开发。当开始制作发行版时,我们只需从我们签署的分支部署。 –