繁体   English   中英

VS2010中每个发布配置文件的不同连接字符串

[英]Different connection string for each publish profile in VS2010

是否可以根据所选的Web发布配置文件更改连接字符串(或仅服务器主机)? 也许使用Web.config转换或其他方式?

我的意思是对于配置文件“测试”将连接字符串“MyConnString”(在已发布的Web.config中)更改为"Data Source='example.com,14333;..." ,对于配置文件“生产” - 更改为"Data Source=./SQLExpress;..." "Data Source='example.com,14333;..." "Data Source=./SQLExpress;..."

这正是创建Web配置转换的原因。 您在帖子中提供的链接有一个专门针对连接字符串执行此操作的演练。

要从转换开始,请右键单击项目资源管理器中的web.config文件,然后选择“添加配置转换”。 假设您的解决方案配置中有ConfigA和ConfigB,则会添加两个新文件:Web.ConfigA.config和Web.ConfigB.config。

如果你打开这些新文件,除了一堆评论之外,它们都是空的。 它们实际上包含一个连接字符串示例,您可以使用它们 - 它看起来像这样:

<connectionStrings>
  <add name="MyDB" 
    connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True" 
    xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>

取消注释此部分,并将“name”属性更改为基本web.config文件中的连接字符串的名称。 将“connectionString”属性设置为要用于ConfigA的实际值。 所以,像这样:

<connectionStrings>
  <add name="myConnectionString" 
    connectionString="Data Source=ConfigASqlServer;Initial Catalog=ConfigADatabase;Integrated Security=True" 
    xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>

对Web.ConfigB.config文件重复此过程,其中包含ConfigB的所需连接字符串。

现在,当您在visual studio中使用“发布”命令时,它将自动转换基本web.config文件,并将“connectionString”属性设置为您发布时所处的任何配置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM