ASP.NET MVC:使用不同的数据库进行调试/发布

时间:2010-08-09 14:27:02

标签: asp.net-mvc

如何轻松地将两个不同的数据库用于调试和发布方案? 我不想在每次发布应用程序的新版本时都记得更改数据源连接字符串,但我也不想在工作数据库上测试新代码......

是否有类似调试/释放开关的东西?

4 个答案:

答案 0 :(得分:5)

如果您使用的是Visual Studio 2010,则可以使用Web.config转换。

http://weblogs.asp.net/gunnarpeipman/archive/2009/06/16/visual-studio-2010-web-config-transforms.aspx

答案 1 :(得分:2)

建议仅为您的连接字符串保留2个.config文件。将它们命名为prod.db.configtest.db.config。每个元素都有<connectionStrings>元素,其值特定于它们所用的环境。

web.config有这个元素

 <connectionStrings  configSource="test.db.config">

在完成对其的更改后,将web.config的文件属性设置为“无操作”。获取此副本,并将其部署到您的应用程序服务器。

每当您部署版本时,您将不得不以某种方式关注配置。此策略至少通过文件名提供一些可见性,在该文件中,connstring / database正在该环境中使用。

答案 2 :(得分:0)

我通过不将web.config提交到我的源代码管理系统来处理这个问题。这可以防止诸如意外地针对开发或测试数据库运行生产系统之类的错误。

我将常用配置设置复制到web-dev.config中,该配置确实已提交。

答案 3 :(得分:0)

另一种方法是从Web.config中完全删除连接字符串,并在IIS配置中将它们定义为属性(在全局级别)。

通过为您的开发IIS定义一个连接字符串,为生产IIS定义另一个连接字符串,它们将依赖于环境,而不是构建的一部分。

在处理LINQ2SQL定义的DBML文件时,有一些与Visual Studio相关的皱纹并试图在Web.config中创建新的连接字符串,但这些可以解决这些问题。