What is web.config. How many web.config files can be allowed
to use in an application?
Answer Posted / praveen chandran
System wide configuration settings are defined in the
Machine.config for the .NET Framework. The Machine.config
file is located in the
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CONFIG folder.
The settings defined in this file are applicable to all
ASP.NET applications in that system.
We can override these default settings by including a
Web.config file in the application's root folder.
By including Web.config files in sub-folders, we can
override the settings defined in the Web.config file in the
application's root folder.
The following are sample section declarations from a
Machine.config file:
<section name="processModel"
type="System.Web.Configuration.ProcessModelConfigurationHandler,
System.Web, Version=1.0.5000.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a"
allowDefinition="MachineOnly"/>
<section name="sessionState"
type="System.Web.SessionState.SessionStateSectionHandler,
System.Web, Version=1.0.5000.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a"
allowDefinition="MachineToApplication"/>
<section name="appSettings"
type="System.Configuration.NameValueFileSectionHandler,
System,
Version=1.0.5000.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089"/>
There is an attribute allowDefinition specified in the first
two section declarations with the values: MachineOnly and
MachineToApplication.
What it does mean?
If allowDefinition="MachineOnly", then we can not override
this section either in application level or in folder level.
The only section declared in the Machine.config file with
this settings is processModel.
If allowDefinition="MachineToApplication", then we can
override these sections by the root directory Web.config.
Sections with this setting in Machine.config are
authentication, machineKey, sessionState, trust, and
securityPolicy.
If allowDefinition attribute is omitted in a section
declaration of the Machine.config file, we can override that
section at any level.
We can override the section appSettings at any level and can
access it by using ConfigurationSettings.AppSettings easily.
What is there in the sample project?
The sample source code is a simple ASP.NET web application
with three Web Forms and three Web.config files. The root
folder has a sub folder SubFolder_L1 that has SubFolder_L2,
each has one Web Form and one Web.config file.
Web.config files have different and overridden keys.
Web.config file in the root folder has the following
appSettings declarations:
<appSettings>
<add key="root" value="Root folder's configuration file."/>
<add key="color" value="Blue"/>
</appSettings>
Web.config file in Subfolder_L1 has the following
appSettings declarations:
<appSettings>
<add key="subfolder_l1" value="Subfolder_L1\web.config
file."/>
<add key="color" value="Green"/>
</appSettings>
The color setting is overridden by the subfolder
configuration file. We can read the root element from
Subfolder_L1 or Subfolder_L2 by the following code:
lblConfig.Text = ConfigurationSettings.AppSettings["root"];
But we can not read configuration settings defined in
Subfolder_L1's Web.config file from the root folder.
Is This Answer Correct ? | 15 Yes | 1 No |
Post New Answer View All Answers
What is DataGrid wheater its a Server Control or something else ?
Difference between using directive vs using statement?
What is the use of response redirect in asp.net?
What is the difference between a candidate key and primary key?
What are the contents of cookie?
In ViewState How much lifespan items stored?
What is recordset asp?
Which methods validate all the controls on a page?
Can the unique key be null?
What are the asp.net server side objects?
How ASP.NET page works?
What is session in web technology?
What is the use of ASP.NET routing?
Using code explain Configuration Management
How would you get asp.net running in apache web servers? Explain it's limitations.