我正在创建一个MVC应用程序。使用实体框架Db连接字符串包括在web.config中自动生成的Appsettings.config和Entity框架连接,其工作正常。在我计划将代码移动到服务器后,我有服务器详细信息,如
Appsettings中的连接字符串
Server Database :
<add key="thenna" value="server=123.45.45.34;database=montage;user id=*****;password=*******;trusted_connection=false;"/>
Local Database:
<add key="thenna" value="server=DESKTOP-QD6A981\SQLEXPRESS;database=tickandtie;user id=***;password=*****;trusted_connection=false;" />
当我想要哪一个我可以使用如果服务器db想要我是注释本地数据库连接字符串代码。 web配置实体框架代码:
<connectionStrings><add name="tickandtieEntities" connectionString="metadata=res://*/Entityframework.Tickmarks.csdl|res://*/Entityframework.Tickmarks.ssdl|res://*/Entityframework.Tickmarks.msl;provider=System.Data.SqlClient;provider connection string="data source=DESKTOP-QD6A981\SQLEXPRESS;initial catalog=tickandtie;user id=sa;password=Tickmarks;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" /></connectionStrings>
当我移动服务器代码时,如何更改Web配置代码?我需要使用相同的代码,否则我需要使用服务器的详细信息?如何在发布应用程序后移动此代码服务器Web配置?
答案 0 :(得分:1)
您可以使用web.config transfor根据目标环境更改连接字符串。
这里有几个链接
这里是我的一个项目中转换xml的一个例子:
<?xml version="1.0" encoding="utf-8" ?>
<!-- For more information on using transformations
see the web.config examples at http://go.microsoft.com/fwlink/?LinkId=214134. -->
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<connectionStrings>
<add name="OASIS"
connectionString="Data source=server\instance; Initial catalog=dbname; User Id=user;Password=pass;MultipleActiveResultSets=True" providerName="System.Data.SqlClient"
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"
/>
</connectionStrings>
</configuration>
如你所见。变换与原始声明非常相似,但有2个aditional属性(xdt:Transform和xdt:Locator)定义转换过程。