我有一个基于web的应用程序(用C#,asp.net编写)。这款应用正在被不同的公司使用。因此,连接字符串必须根据公司进行更改。替换连接字符串的最佳方式是什么?
注意:我不想为每个人生成特定的web.config文件。
发布于 2013-11-29 07:08:13
如果您确实不想为不同的公司更改web.config,一种可能是以以下格式提供它:
Server=DBHOST;Database=myDataBase;Trusted_Connection=True;并要求每家公司在其hosts file中添加DBHOST条目。
发布于 2013-11-29 07:13:28
如果您分别为这些公司托管您的网站,则使用和更改连接字符串是正确的方式。所有配置信息都在那里,以便从一个环境更改到另一个环境。
发布于 2013-11-29 13:52:08
您可以向最终用户提供动态提供连接字符串的选项,如下所示。
<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"); https://stackoverflow.com/questions/20275960
复制相似问题