ITORIAN    

  public string Welcome() {

      return "Abhimanyu's Thoughts";

  }

My First E-Book
Quick Report
Yearly Posts:
   i) Oct-Nov 2010: 12
   ii) In 2011: 380
   iii) In 2012: 32

You can find my articles and blogs on:
   i) itorian.com
   ii) c-sharpcorner.com
   iii) dotnetfunda.com
   iv) codeproject.com

Greatest Hits
People I Follow
Disclaimer
This is my personal website and the opinions I have expressed here is my own. For any accuracy I recommend to visit official websites like MSDN for Microsoft. I developed this website to share my technical skills.

Distributed ConnectionString in ASP.NET
In this video post, you are going to learn how to manage huge list of Connection Strings in Configuration file. We will store our configuration settings in separate configuration file (that's I am calling distributed).
Abhimanyu Kumar Vatsa

IT Faculty || I blog on Microsoft Technologies || Mindcracker MVP || Founder of ITORIAN.COM
   

Introduction

In this post you are going to take a look at Distributed ConnectionString in ASP.NET. We will store our configuration settings in separate configuration file (that’s I am calling distributed).

Managing huge list of ConnectionStrings in one configuration file (Web.config) is one of the difficult jobs in ASP.NET based web designing. So, I am writing this video post for you that will light a way to deal.

Also, Web.config file has much information already so placing connection strings in that creates management difficulties if you work big projects.

What I am going to do?

I have a Web.config file in my project that has following information (including connection strings):

<?xml version="1.0"?>

<!--

    Note: As an alternative to hand editing this file you can use the

    web admin tool to configure settings for your application. Use

    the Website->Asp.Net Configuration option in Visual Studio.

    A full list of settings and comments can be found in

    machine.config.comments usually located in

    \Windows\Microsoft.Net\Framework\vx.x\Config

-->

<configuration>

 

  <connectionStrings>

    <add name="ConnStr1" connectionString="infos***"/>

    <add name="ConnStr2" connectionString="infos***"/>

    <add name="ConnStr3" connectionString="infos***"/>

    <add name="ConnStr4" connectionString="infos***"/>

    <add name="ConnStr5" connectionString="infos***"/>

    <add name="ConnStr6" connectionString="infos***"/>

  </connectionStrings>

 

       <system.web>

              <!--

            Set compilation debug="true" to insert debugging

            symbols into the compiled page. Because this

            affects performance, set this value to true only

            during development.

        -->

              <compilation debug="true">

                     <assemblies>

                           <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>

                           <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

                           <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>

                           <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>

                     </assemblies>

              </compilation>

              <!--

          The <authentication> section enables configuration

          of the security authentication mode used by

          ASP.NET to identify an incoming user.

        -->

              <authentication mode="Windows"/>

              <!--

           The <customErrors> section enables configuration

           of what to do if/when an unhandled error occurs

           during the execution of a request. Specifically,

           it enables developers to configure html error pages

           to be displayed in place of a error stack trace.

 

           <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">

             <error statusCode="403" redirect="NoAccess.htm" />

             <error statusCode="404" redirect="FileNotFound.htm" />

           </customErrors>

        -->

              <pages>

                     <controls>

                           <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

                           <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

                     </controls>

              </pages>

              <httpHandlers>

                     <remove verb="*" path="*.asmx"/>

                     <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

                     <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

                     <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>

              </httpHandlers>

              <httpModules>

                     <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

              </httpModules>

 

 

       </system.web>

       <system.codedom>

              <compilers>

                     <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">

                           <providerOption name="CompilerVersion" value="v3.5"/>

                           <providerOption name="WarnAsError" value="false"/>

                     </compiler>

                     <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" warningLevel="4" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">

                           <providerOption name="CompilerVersion" value="v3.5"/>

                           <providerOption name="OptionInfer" value="true"/>

                           <providerOption name="WarnAsError" value="false"/>

                     </compiler>

              </compilers>

       </system.codedom>

       <!--

        The system.webServer section is required for running ASP.NET AJAX under Internet

        Information Services 7.0.  It is not necessary for previous version of IIS.

    -->

       <system.webServer>

              <validation validateIntegratedModeConfiguration="false"/>

              <modules>

                     <remove name="ScriptModule"/>

                     <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

              </modules>

              <handlers>

                     <remove name="WebServiceHandlerFactory-Integrated"/>

                     <remove name="ScriptHandlerFactory"/>

                     <remove name="ScriptHandlerFactoryAppServices"/>

                     <remove name="ScriptResource"/>

                     <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

                     <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

                     <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

              </handlers>

       </system.webServer>

       <runtime>

              <assemblyBinding appliesTo="v2.0.50727" xmlns="urn:schemas-microsoft-com:asm.v1">

                     <dependentAssembly>

                           <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>

                           <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>

                     </dependentAssembly>

                     <dependentAssembly>

                           <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>

                           <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>

                     </dependentAssembly>

              </assemblyBinding>

       </runtime>

</configuration>

 

In above configuration file, our one of the very important information that is connection string is hidden in other codes, so let’s separate it.

Create a new configuration file and delete all information appeared by default in that file and cut the following information from above file and add it in new configuration file:

  <connectionStrings>

    <add name="ConnStr1" connectionString="infos***"/>

    <add name="ConnStr2" connectionString="infos***"/>

    <add name="ConnStr3" connectionString="infos***"/>

    <add name="ConnStr4" connectionString="infos***"/>

    <add name="ConnStr5" connectionString="infos***"/>

    <add name="ConnStr6" connectionString="infos***"/>

  </connectionStrings>

 

Now in the source file (Web.config), we need to add the reference of the new configuration file in our Web.config file, for this add following code in Web.config file at the exact location where we cut.

<connectionStrings configSource=”new config file name” />

Now, run the project and see the magic.

Video Post:



Happy Coding !!



Join us on Facebook. Join us on Twitter.

   



Approved Comments

No any comment found.