我有一个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更改为服务器的名称..
有没有办法,我不必这样做,因为它感觉不对..
任何建议..
感谢
答案 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中的任何内容都是合理的游戏。