Differentiate between
web.config, app.config and machine.config files
web.config file
·
web.config is
used for ASP.NET Web Projects / Web Services. web.config by default has
several configurations required for the web application. It is also
called Application Level Configuration File and inherits
setting from the machine.config file.
·
web.config is parsed at
runtime, so if you edit the web.config file, the web application will
automatically load the changes in the config file.
·
You can have more than one
web.config file in your application. Specifically, you can have a web.config
for each folder under your web application.
·
The web.config file is required for
ASP.NET webpages.
app.config file
·
app.config is used for Windows
Forms, Windows Services, Console Apps and WPF applications.
·
app.config is parsed at
compile time, so if you edit the app.config file, you have to restart the
application. At compile time a copy of the app.config file is taken,
renamed to [output].config and moved to the build folder. This copy
can then be modified, and your modifications will be read each time the
application/service is started.
·
app.config is not added
automatically to an application. You can go to the solution explorer, select
'Add new item' and add the 'Application Configuration File'.
·
There is always one app.config file
in a window application.
·
The app.config file is optional in
an application and doesn't have to be used when writing desktop applications.
machine.config file
·
machine.config file is automatically
installed on your system when you install Visual Studio.Net. This is also
called Machine Level Configuration File. Only one machine.config file
exists on a server, and is at the highest level in the configuration hierarchy.
·
The settings of machine.config file
are applied to all the web applications residing on the server.
·
The machine.config file is
overridden by the web.config file.
·
Without the
machine.config file, application can not be executed.