我有一个基于Web的应用程序(用C#,asp.net编写)。该应用正在被不同的公司使用。所以,连接字符串必须根据公司进行更改。什么是替换连接字符串的最佳方法?根据服务器名称的不同连接字符串
注意:我不想为每个人生成特定的web.config文件。
谢谢
我有一个基于Web的应用程序(用C#,asp.net编写)。该应用正在被不同的公司使用。所以,连接字符串必须根据公司进行更改。什么是替换连接字符串的最佳方法?根据服务器名称的不同连接字符串
注意:我不想为每个人生成特定的web.config文件。
谢谢
如果你真的不想改变web.config
为不同的公司,一种可能性是它提供的格式:
Server=DBHOST;Database=myDataBase;Trusted_Connection=True;
,并要求每家公司加入他们的DBHOST
进入hosts file。
如果您为每个公司分别托管您的网站,请使用并更改连接字符串IS正确的方法。所有配置信息都可以从一个环境更改为另一个环境。
您可以给最终用户选项来动态提供连接字符串,如下所示。
<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");