14

web.config和 和有什么不一样machine.config

我读过:-

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

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

4

5 回答 5

19

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

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

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

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

于 2012-09-21T16:57:52.017 回答
4

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

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

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

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

最后,一个警告:并非所有设置都可以在子级 web.config 文件中覆盖。可以(有些是默认情况下)在此处描述的层次结构的任何级别锁定某些设置。

于 2012-09-21T16:57:26.180 回答
4

让我澄清一下:- 在 ASP.NET 中,有一个配置文件层次结构,而 machine.config 文件位于根目录,这意味着 machine.config 文件包含应用于您创建的每个 Web 应用程序的配置设置。它存在于 Windows/Microsoft .NET/Framework/[version]/config 你会在相同的物理路径中找到一个 web.config 文件(我给它命名为 A)。这个 web.config 文件继承了 machine.config 的配置设置。现在你有你的应用程序文件夹,你有 web.config(在根级别)。此 web.config(我将其命名为 B)从 A 继承配置设置。如果您在应用程序文件夹的子目录中有 web.config,则子目录 web.config 从 B 继承配置设置,这就是梯子下降的方式

于 2013-12-24T07:09:56.400 回答
2

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

于 2012-09-21T17:01:04.337 回答
1

机器配置

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

网络配置

  • 这是在您创建 ASP.Net Web 应用程序项目时自动创建的。
  • 这也称为应用程序级配置文件。
  • 此文件从 machine.config 继承设置
于 2020-10-05T12:12:36.073 回答