Dav*_*N59 4 database sql-server wcf version slowcheetah
好的,所以我做了蠢事并发布了针对我们的开发数据库(SQL Server 2008 R2)的生产代码(C#,VS2010).幸运的是我们还没有使用生产数据库,所以我没有尝试恢复和同步一切的痛苦......
但是,我想要防止这种情况再次发生,因为它可能会更加痛苦.我的想法是添加一个我可以在启动时查询的表,并通过返回的值确定我连接的数据库.例如,生产将返回"PROD",dev和test将返回其他值.
如果它有任何区别,应用程序会与WCF服务进行通信以访问数据库,因此我在配置文件中有端点,而不是实际的连接字符串.
这有意义吗?其他人如何解决这个问题?
谢谢,戴夫
解决此问题的最简单方法是无法访问生产帐户.这些存储在我们的.net应用程序的Machine.config文件中.在非.NET应用程序中,通过在公共位置具有配置文件,或者(我敢说)具有保存帐户信息的注册表条目,这很容易复制.
我们的大多数服务器也通过别名访问,因此没有人真正需要将连接字符串从环境更改为环境.只需从配置中获取用户,hosts文件中的服务器别名就会指向正确的服务器.这也消除了我们在切换数据库实例(更改硬件等)时必须更新所有配置文件的麻烦.
即使点击一次部署和终点也是如此.您可以在最终用户桌面上的机器配置中发布新的端点URI(我假设这是一个内部应用程序),然后在代码中引用它.
如果你绝对不能这样做,因为这可能是很多工作(我工作的最后一个地方有2000个呼叫中心的人,所以这个推动要困难得多,但仍然可能).您始终可以使用自动构建服务器设置来修改app.config文件,作为为您构建应用程序的最后一步.然后,您始终从自动构建服务器发布已编译的代码.从来没有对app.config进行更改,因为这是开发人员流程中的手动步骤.这在某些时候总会导致问题.
现在,如果这一切都不起作用,你最后的选择(也是这样做),我讨厌,但它的工作原理是查找映射驱动器的值.从本质上讲,公司中的每个人都有一个映射驱动器来说R:.这是您拥有生产配置文件等的地方.Prod帐户人员使用生产值映射到一个驱动器位置,开发人员等使用开发值映射到另一个驱动器位置.与其他人相比,我讨厌这个选项,但是它有效,而且它可以让你陷入困境,其他人变得乏味和困难(因为说办公室政治,建立一个构建服务器等).
| 归档时间: |
|
| 查看次数: |
1059 次 |
| 最近记录: |