在非生产环境中测试生产配置文件

时间:2011-05-23 18:01:27

标签: c# asp.net deployment production-environment

在将配置文件部署到生产环境之前,仅测试生产配置文件的最佳方法是什么?

非生产环境的配置文件可以在各自的环境中轻松测试。但是在生产部署发生之前如何测试生产环境?

例如,STAGE中的DB名称与prod中的DB名称不同。

如果STAGE配置文件具有正确的数据库名称并且测试正常,该怎么办?现在,prod配置文件在配置文件中有“拼写错误”。这个拼写错误直到部署到生产中才会被发现。

有没有办法在生成之前使用拼写错误测试此配置文件?

感谢

4 个答案:

答案 0 :(得分:3)

一些使用的方法是使Staging环境在生产环境的各个方面都相同。

在完全使用解决方案之前,您可以在尽可能接近的生产环境中进行测试。

答案 1 :(得分:1)

您必须确保环境的配置类似,因为默认情况下大多数值都只包含必须在配置文件中覆盖的子集(约定优于配置。

您必须拥有 PREPROD或STAGING或PROD环境,其中部署与PROD完全相同且配置文件相同,除了机器信息等一些值。部署到PREPROD让您对PROD配置正常的情况充满信心。

上述两项应该会对你有所帮助。您还可以查看A-B部署或Blue-Green deployment

答案 2 :(得分:0)

实现这一目标的最佳方法可能是在生产环境中创建一个单独的网站作为“舞台”。然后,您可以先将新配置推送到此站点进行测试,如果一切正常,请将其迁移到您的真实生产站点。否则,您无法保证它的行为与生产服务器上的行为相同。

答案 3 :(得分:0)

在web.config文件中的appSettings下,我使用此密钥:

<add key="CurrentEnvironment" value="0"/>
<!--        
    Public Enum Environments
       Development = 0          
       Alpha = 1                
       ReleaseCandidate = 2    
       Production = 3           
    End Enum
-->

正如您在我的评论中所看到的,这对应于我的Helpers.vb类中的Enum,其使用如下:

Public Shared CurrentEnvironment As Environments = DirectCast(WebConfigurationManager.AppSettings("CurrentEnvironment"), Environments)

这允许您编写特定于环境的代码,例如URL,数据库连接等。

我发现它非常有用。

- 抱歉VB.NET代码,但我相信你可以轻易隐身 -

基于OP编辑的编辑:

为什么不创建 Unit Test project