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
Why does my asp.net file have multiple tag with runat=server?
What does asp in asp.net stand for?
What a diffgram is, and a good use for one?
What is cas?
how can we create wcf in asp.net and how can we cll that in to asp.net application?plsss tel me each step clearly
How do I open an ashx file?
What are the 3 types of web?
Should I delete cookies?
Explain the namespace classes used in asp.net mvc? : asp.net mvc
What is an il?
How can you handle unmanaged code exceptions in asp.net?
What are the parts of an http response?
is there any third party tools are using in .net technologies? what are there ? give me the brief introduction?
What are the memory-mapped files?
I have an external link in my application say www.xyztest.com. Today this site works on http protocal. Tommorow it may run on https. So i cant hardcore the protocal in the site. When a user clicks on the link how can i know if the external site works on http or https and takes him to that place?