asp.NET - 如何确保web.config用于conectionstring(而不是app.config)

时间:2009-12-10 19:40:52

标签: asp.net connection-string

我有一个运行良好的MVC网站,直到我把它移到测试中,它在那里崩溃了。经过一些调查如果发现因为我将'model'拆分为自己的单独项目,该模型使用了自己的app.config中的connectionstring(而不是网站的web.config)。

所以我在某个地方找到了一篇文章(现在找不到链接),显示我如何使用web.config - 很棒,我让网站进入测试阶段。

不幸的是,下次我尝试再次在测试中实现该网站时,我遇到了同样的问题,过了一会儿发现我的模型的app.config重新编写了连接字符串DOH!

这里的最佳做法是什么?我需要将数据库配置放在一个易于由系统管理员更改的文件中

3 个答案:

答案 0 :(得分:2)

据我所知,ASP.NET应用程序永远不会使用app.config。

答案 1 :(得分:1)

如果您的项目同时包含App.config和Web.config文件,那么您需要将它们绑定在一起,以便它们共享连接字符串。这样做很容易。在* .config文件中添加以下行:

<connectionStrings configSource="WebCS.config" />

webcs.config将如下所示:

<connectionStrings>
 <add name="YourConnString" connectionString="Data Source=Server;Initial Catalog=YourDB;User ID=SQLID;Password=Password" providerName="System.Data.SqlClient"/>
</connectionStrings>

这将允许您从多个位置引用相同的连接字符串,并使您的开发,测试和部署服务器上的连接字符串变得容易。

更新:如果您正在进行TDD或以其他方式将您的逻辑分离到单独的DLL中,您可能会有两种类型的.Config文件,从而引发您提出的问题。当然,单独的Business Logic DLL是在ASP.NET中创建基于表单的Web应用程序的“最佳实践”。例如,我只在网站本身放置UI代码,然后调用所有业务相关和数据处理逻辑的DLL。这不仅有助于分离问题,而且还使测试变得简单。

答案 2 :(得分:0)