web.config
和machine.config
之间的区别是什么?
我读过: -
web.config文件指定特定的配置设置 Web应用程序,位于应用程序的根目录中; machine.config文件指定所有的配置设置 Web服务器上的网站,位于 $ WINDOWSDIR $ \ Microsoft.Net \框架\版\配置。
我有什么遗漏或任何其他技术方面的问题吗?我想更多地了解这两个文件。
答案 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
Web.Config