Web配置中的连接字符串

时间:2009-11-21 22:01:25

标签: c# asp.net sql-server web-config connection-string

我有一个Web应用程序,我在本地主机上制作并在不同的服务器上发布。

在此应用程序的Web配置中,我有连接属性,如:

<connectionStrings>
<add name="MyConnectionString" connectionString="Data Source=XYZ-PC\SQLEXPRESS;Initial Catalog=SumooHServerDB;Integrated Security=True" providerName="System.Data.SqlClient"/>

现在连接字符串数据源具有我的服务器的名称,当我发布它并在不同的服务器上运行此应用程序时,我必须将XYZ-PC \ SQLEXPRESS更改为服务器的名称..

有没有办法,我不必这样做,因为它感觉不对..

任何建议..

感谢

6 个答案:

答案 0 :(得分:3)

如果实例名称相同,请尝试将XYX-PC替换为localhost

答案 1 :(得分:2)

如果数据库与IIS位于同一服务器上,则可以使用Data Source=localhost\sqlexpress

答案 2 :(得分:2)

我喜欢使用configSource将连接字符串拉出到一个单独的文件中,如下所述*:http://stevenharman.net/blog/archive/2007/06/07/tip-put-connection-strings-in-their-own-configuration-file.aspx

这样,您可以配置每个服务器的connectionStrings.config一次,但继续使用适用于所有服务器的单个版本更新其web.config文件。

*除此之外,我通常将其命名为connectionStrings.config,因此对其他人的维护更为明显。

答案 3 :(得分:0)

以下文章可以解决您的问题: Handling Multiple Environment Configurations with .NET 2.0

基本上,我们的想法是使用这样的事实:在配置文件中,您可以指示必须从外部文件中读取某些部分。在项目构建期间,您可以根据您的环境复制正确的外部文件。我认为这个链接可以更好地解释这一点。

答案 4 :(得分:0)

使用此连接字符串:

name="MyConnectionString" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=SumooHServerDB;Integrated Security=True" providerName="System.Data.SqlClient"

它会起作用。

答案 5 :(得分:0)

查看Web Deployment个项目。

除了让您将所有内容合并到一个程序集中之外,它还允许您选择执行基于部分的web.config替换。我们在构建服务器上使用它来更改标准web.config以便在测试环境中运行。作为奖励,您不仅限于更改连接字符串。 web.config中的任何内容都是合理的游戏。