web.config和machine.config之间的区别?

时间:2012-09-21 16:48:54

标签: asp.net iis

web.configmachine.config之间的区别是什么?

我读过: -

  

web.config文件指定特定的配置设置   Web应用程序,位于应用程序的根目录中;   machine.config文件指定所有的配置设置   Web服务器上的网站,位于   $ WINDOWSDIR $ \ Microsoft.Net \框架\版\配置。

我有什么遗漏或任何其他技术方面的问题吗?我想更多地了解这两个文件。

5 个答案:

答案 0 :(得分:16)

每个CLR版本都有一个machine.config文件以及一个额外的web.config文件,我将其称为“机器级web.config文件”。

此外,正如您所注意到的,每个Web应用程序还有一个web.config文件。 Web应用程序中的目录也可以包含web.config个文件。

现在,关键是配置文件相互继承。这意味着,Web应用程序将读取machine.config文件和机器级web.config文件(针对其给定框架版本)及其自己的web.config文件中定义的设置。

machine.config中定义事物的一个常见用例是在服务器上的许多应用程序之间共享值,比如可能是连接字符串,或SMTP服务器设置,等等。

答案 1 :(得分:4)

这些是一些最重要的细节;实际上,machine.config不仅仅是ASP.NET本身的配置。您应该查看另一个文件,(我认为)与machine.config位于同一位置;这是'root'web.config,介于machine.config和特定于站点的web.config文件之间,当然是特定于ASP.NET的。

您在IIS管理控制台中在服务器级别更改的某些设置是在根web.config中执行的。

请注意,此层次结构是per-.NET版本; (2.0有一个; 4.0有自己的)

另一个注意事项:您可以在网站根目录下的目录和/或子应用程序中包含子web.config个文件,以进一步修改“基础”。

最后,有一点需要注意:并非所有设置都可以在子级web.config文件中覆盖。默认情况下可能会锁定此处所述层次结构的任何级别的某些设置。

答案 2 :(得分:4)

让我清楚说明: -  在ASP.NET中,有一个配置文件层次结构,而machine.config文件位于根目录下 含义machine.config文件包含在您创建的每个Web应用程序上应用的配置设置。它存在于Windows / Microsoft .NET / Framework / [version] / config中 您将在同一物理路径中找到一个web.config文件(我将其命名为A)。此web.config文件从machine.config继承配置设置。如果您有应用程序文件夹,其中有web.config(在root用户名)水平)。这个web.config(我把它命名为B)从A继承配置设置。如果你在应用程序文件夹的子目录中有web.config而不是子目录web.config从B继承配置设置,这就是梯子下降的方式

答案 3 :(得分:2)

machine.config是系统上的最终主配置文件,具有许多默认设置。当您使用web.config文件(以级联顺序完成)时,实际上是用新的设置覆盖这些设置。

答案 4 :(得分:1)

Machine.Config

  • 在安装Visual Studio时会自动安装它。净
  • 这也称为计算机级配置文件。
  • 服务器上仅存在一个machine.config文件。
  • 此文件位于配置层次结构中的最高级别。

Web.Config

  • 这是在您创建ASP.Net Web应用程序项目时自动创建的。
  • 这也称为应用程序级配置文件。
  • 此文件继承了machine.config中的设置