2013-11-28 63 views
2

我有一个基于Web的应用程序(用C#,asp.net编写)。该应用正在被不同的公司使用。所以,连接字符串必须根据公司进行更改。什么是替换连接字符串的最佳方法?根据服务器名称的不同连接字符串

注意:我不想为每个人生成特定的web.config文件。

谢谢

回答

1

如果你真的不想改变web.config为不同的公司,一种可能性是它提供的格式:

Server=DBHOST;Database=myDataBase;Trusted_Connection=True; 

,并要求每家公司加入他们的DBHOST进入hosts file

1

如果您为每个公司分别托管您的网站,请使用并更改连接字符串IS正确的方法。所有配置信息都可以从一个环境更改为另一个环境。

0

您可以给最终用户选项来动态提供连接字符串,如下所示。

<connectionStrings> 
<add name="ConnectionNumberOne" 
    connectionString="Data Source=ds;Initial Catalog=DB;Integrated Security=True" 
    providerName="System.Data.SqlClient" /> 
<add name="ConnectionNumberTwo" 
    connectionString="Data Source=ds2;Initial Catalog=DB2;Integrated Security=True" 
    providerName="System.Data.SqlClient" /> 

您可以阅读正是如此连接字符串:

var connectionOne = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionNumberOne"]; 
var connectionTwo = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionNumberTwo"]; 

而且可以保存连接字符串,以及:

Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 
config.ConnectionStrings.ConnectionStrings["ConnectionNumberOne"].ConnectionString =  //CONCATINATE YOUR FIELDS TOGETHER HERE 
config.Save(ConfigurationSaveMode.Modified, true); 
ConfigurationManager.RefreshSection("connectionStrings"); 
相关问题