2012-09-21 26 views
9

web.configmachine.configの違いは何ですか?web.configとmachine.configの違いは?

私は読んだことが: -

web.configファイルには、特定の のWebアプリケーションの構成設定を指定して、アプリケーションのルートディレクトリに配置されています。 machine.configファイルには、Webサーバー上のWebサイトの すべての構成設定が指定されており、 $ WINDOWSDIR $ \ Microsoft.Net \ Framework \ Version \ Configにあります。

私が紛失していることやその他の技術的側面はありますか?私は両方のファイルについてもっと知りたいです。

答えて

13

各CLRバージョンにはmachine.configファイルがあり、さらにweb.configファイルがあります。これを「マシンレベルのweb.configファイル」と呼びます。

また、各Webアプリケーションには、web.configファイルもあります。 Webアプリケーション内のディレクトリには、web.configファイルもあります。

ここで重要な点は、設定ファイルが互いに継承していることです。つまり、Webアプリケーションは、machine.configファイルとマシンレベルのweb.configファイル(指定されたフレームワークバージョンの場合)と独自のweb.configファイルで定義された設定を読み込みます。

machine.configのものを定義する一般的な使用例は、おそらく接続文字列やSMTPサーバー設定などのサーバー上の多くのアプリケーション間で値を共有することです。

+2

偉大な答えですが、少し修正があります。「各.NET Framework」ではなく各CLRのバージョンです。 (e.x.net fx 3.0は独自のCLRなしで提供されるため、.net fwの新しいmachine.configはありません) – Tamir

4

これらは、最も重要な詳細の一部です。実際には、machine.configはASP.NET自体の設定を超えています。調べるべき別のファイルがあります。これはmachine.configと同じ場所にあります。これはとサイト固有のweb.configファイルの間にあり、もちろんASP.NET固有のものである 'ルート' web.configです。

IIS管理コンソールのサーバーレベルで変更する設定の一部は、ルートweb.configで実行されます。

この階層は、.NET版であることに注意してください。 (2.0には1つあり、4.0には独自のものがあります)

もう1つの注意:ディレクトリおよび/またはサブアプリケーションのサブファイルは、サイトのルートから「ベース」をさらに変更することができます。

最後に、1つの警告:すべての設定をサブレベルのweb.configファイルで上書きできるわけではありません。ここで説明する階層の任意のレベルで特定の設定をロックすることは可能です(デフォルトではいくつかがあります)。

2

machine.configは、システムの究極のマスター設定ファイルで、多くのデフォルト設定があります。 Web.configファイルをカスケード順で使用すると、実際には新しい設定で上書きされます。

3

ASP.NETで 、構成ファイル階層があり、machine.configファイルはルート という意味のマシンにあります。設定ファイルには、作成した各Webアプリケーションに適用される設定が含まれています。これはWindows/Microsoft .NET/Framework/[バージョン]/configに存在します web.configファイルは同じ物理パスにあります(名前はAです)。このweb.configファイルはmachine.configの構成設定を継承しています。あなたは、あなたがweb.config(ルートレベルで)を持っているアプリケーションフォルダを持っています。このweb.config(私はBという名前です)は、Aから設定を継承します。サブディレクトリweb.configよりもアプリケーションフォルダのサブディレクトリにweb.configがある場合、Bからの設定設定を継承し、それがはしごの落ち方です