2009-11-13 71 views

回答

5

Web.config是特定於應用程序的。

Machine.config適用於服務器上的所有應用程序。因此,如果我在共享連接字符串的同一臺服務器上有3個應用程序, machine.config是要走的路。

如果我有應用程序特定的設置(比如超時間隔)把它們放在web.config中

1

machine.config是在機械設備級包含默認設置的全局配置文件,它可能在web.config被覆蓋,專用於給定的應用。

3

它們是同一個系統的兩部分。微軟在.NET中增加了一些魔力,以便在運行時合併machine.config和web.config。如果您願意,Machine.config提供了web.config可以覆蓋的默認值。

Machine.config提供了一種保存機器特定配置的方法。所以說你有兩個環境Production和UAT需要指向不同的數據庫。您可以分別在Production和UAT框中分別將production和UAT的connectionStrings放置在machine.config中,並且這些機器上的所有ASP.NET應用程序都可以訪問相應的connectionString。

你可以閱讀更多關於.NET配置文件here

2

我建議讀一讀ASP.NET Configuration Inheritance。除machine.configweb.config之外還有其他配置層,它有助於瞭解可能影響您的應用程序的所有不同部分。

7

小心。有一個配置文件的層次結構:

applicationHost.config是頂級IIS配置文件。

接下來是machine.config,它是頂級服務器特定的配置文件。

接下來是服務器級別web.config文件。

然後有一個應用程序特定的web.config

接下來,有一個可選的application.config文件。

最後,還有可選的目錄特定的web.config文件。

更高級別的文件通常包含限制可在較低級別文件中配置的指令。例如,最高級別web.config是配置服務器信任級別的地方。