web.config
和 和有什么不一样machine.config
?
我读过:-
web.config 文件指定特定 Web 应用程序的配置设置,位于应用程序的根目录中;machine.config 文件指定 Web 服务器上所有网站的配置设置,位于 $WINDOWSDIR$\Microsoft.Net\Framework\Version\Config 中。
有什么我遗漏的或任何其他技术方面的吗?我想更多地了解这两个文件。
每个 CLR 版本都有一个machine.config
文件以及一个附加web.config
文件,我将其称为“机器级 web.config 文件”。
此外,正如您所注意到的,每个 Web 应用程序还有一个web.config
文件。Web 应用程序中的目录也可以包含web.config
文件。
现在,关键是配置文件相互继承。这意味着,Web 应用程序将读取machine.config
文件和机器级web.config
文件(针对其给定的框架版本)中定义的设置,以及它自己的web.config
文件。
在 中定义事物的一个常见用例是machine.config
在服务器上的许多应用程序之间共享值,例如连接字符串或 SMTP 服务器设置等。
这些是一些最重要的细节;尽管实际上,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 文件中覆盖。可以(有些是默认情况下)在此处描述的层次结构的任何级别锁定某些设置。
让我澄清一下:- 在 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 继承配置设置,这就是梯子下降的方式
这machine.config
是您系统上的终极主配置文件,具有许多默认设置。当您使用按级联顺序完成的 web.config 文件时,您实际上是在用新设置覆盖这些设置。
机器配置
网络配置