Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Web.Config Debug/Release

I know that web.config in Visual Studio 2010 provides the ability to switch from databases from Debug mode to Release mode.

Here is my Web.Release.config:

<?xml version="1.0"?>  <!-- For more information on using web.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 -->  <configuration xmlns:xdt="http://schemas.microsoft.com/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> 

Here is my Web.Debug.config code:

<?xml version="1.0"?>  <!-- For more information on using web.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 -->  <configuration xmlns:xdt="http://schemas.microsoft.com/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> 

And this is my Web.config code:

<?xml version="1.0"?>  <!-- For more information on how to configure your ASP.NET application, please visit http://go.microsoft.com/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> 

When I publish my project there is nothing showing in my Web.config file.it Is not showing my Live Database connection string?

like image 960
RG-3 Avatar asked Apr 27 '11 22:04

RG-3


People also ask

What is web debug config?

This is the transform that is applied when you publish your application to the development staging environment. This would make changes to the web. config which are required for the target environment.

Where is web config file in Visual Studio 2022?

config file is located in the %SystemRoot%\Microsoft.NET\Framework\%VersionNumber%\CONFIG\ folder. The default settings that are contained in the Machine.

What is web config transform?

A Web. config transformation file contains XML markup that specifies how to change the Web. config file when it is deployed. You can specify different changes for specific build configurations and for specific publish profiles.


1 Answers

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.

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.

Note: You won't have to worry about updating your providerName parameter in the transform files, since they don't change.

Here's an example from one of my apps. Here's the web.config file section:

<connectionStrings>       <add name="EAF" connectionString="[Test Connection String]" /> </connectionString> 

And here's the web.config.release section doing the proper transform:

<connectionStrings>       <add name="EAF" connectionString="[Prod Connection String]"            xdt:Transform="SetAttributes"            xdt:Locator="Match(name)" /> </connectionStrings> 

One added note: Transforms only occur when you publish the site, not when you simply run it with F5 or CTRL+F5. If you need to run an update against a given config locally, you will have to manually change your Web.config file for this.

For more details you can see the MSDN documentation

https://msdn.microsoft.com/en-us/library/dd465326(VS.100).aspx

like image 174
Dillie-O Avatar answered Oct 05 '22 17:10

Dillie-O