我知道的web.config在Visual Studio 2010提供了从数据库切换调试模式为发布模式的能力。
I know that web.config in Visual Studio 2010 provides the ability to switch from databases from Debug mode to Release mode.
这是我Web.Release.config:
<?xml version="1.0"?> <!-- For more information on using web.config transformation visit go.microsoft/fwlink/?LinkId=125889 --> <configuration xmlns:xdt="schemas.microsoft/XML-Document-Transform"> <connectionStrings> <add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" /> <add name="Testing1" connectionString="Data Source=test;Initial Catalog=TestDatabase;Integrated Security=True" providerName="System.Data.SqlClient" /> </connectionStrings> <system.web> <compilation xdt:Transform="RemoveAttributes(debug)" /> </system.web> </configuration>这是我Web.Debug.config code:
<?xml version="1.0"?> <!-- For more information on using web.config transformation visit go.microsoft/fwlink/?LinkId=125889 --> <configuration xmlns:xdt="schemas.microsoft/XML-Document-Transform"> <connectionStrings> <add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" /> <add name="Live1" connectionString="Data Source=Live;Initial Catalog=LiveDatabase;Integrated Security=True" providerName="System.Data.SqlClient" /> </connectionStrings> <system.web> <compilation xdt:Transform="RemoveAttributes(debug)" /> </system.web> </configuration>这是我的web.config code:
<?xml version="1.0"?> <!-- For more information on how to configure your ASP.NET application, please visit go.microsoft/fwlink/?LinkId=169433 --> <configuration> <system.web> <compilation debug="true" targetFramework="4.0" /> <authentication mode="Forms"> <forms loginUrl="~/Account/Login.aspx" timeout="2880" /> </authentication> <membership> <providers> <clear/> <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" /> </providers> </membership> <profile> <providers> <clear/> <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/"/> </providers> </profile> <roleManager enabled="false"> <providers> <clear/> <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" /> <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" /> </providers> </roleManager> </system.web> <system.webServer> <modules runAllManagedModulesForAllRequests="true"/> </system.webServer> </configuration>在我出版我的项目有没有在我的web.config file.it显示没有显示我的活动数据库连接字符串?
When I publish my project there is nothing showing in my Web.config file.it Is not showing my Live Database connection string?
推荐答案在web.config变换是Visual Studio 2010中使用XSLT的组成部分,以改造当前的web.config文件到它的.debug或.Release版本。
The web.config transforms that are part of Visual Studio 2010 use XSLT in order to "transform" the current web.config file into its .Debug or .Release version.
在您的.debug / .Release文件,您需要添加以下的参数在连接字符串字段:
In your .Debug/.Release files, you need to add the following parameter in your connection string fields:
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"这将导致每个连接串线相应地找到匹配的名称,以及更新的属性。
This will cause each connection string line to find the matching name and update the attributes accordingly.
的注意:您将不必担心在转换文件更新您的providerName参数,因为它们不改变的
下面是从我的应用程序之一的例子。这里的web.config文件部分:
Here's an example from one of my apps. Here's the web.config file section:
<connectionStrings> <add name="EAF" connectionString="Data Source=NTSQLT\S2K5TST;Initial Catalog=HR;User ID=EAFApp;Password=XXXX" providerName="System.Data.SqlClient" /> </connectionString>和这里的web.config.release部分做适当的变换:
And here's the web.config.release section doing the proper transform:
<connectionStrings> <add name="EAF" connectionString="Data Source=NTSQLP\S2K5TST;Initial Catalog=HR;User ID=EAFApp;Password=YYYY" xdt:Transform="SetAttributes" xdt:Locator="Match(name)" /> </connectionStrings>的一个附加提示:当您发布网站转换时才会出现,而不是当你简单地用F5或CTRL + F5运行它。如果你需要在本地运行针对给定配置的更新,则必须手动更改此Web.config文件。的
有关详细信息,你可以看到MSDN文档
For more details you can see the MSDN documentation
msdn.microsoft/en-us/library/dd465326(VS.100).aspx
更多推荐
Web.Config中调试/发布
发布评论