2012-02-21 17 views
1

非常に似たWeb.configファイルを持つWebサイトはたくさんあります。Web.Configのファイルと場所

各Webサイトのルートディレクトリの前に1つの設定ファイルに複製設定を集中できますか?または、唯一のオプションmachine.configですか?

アセンブリリファレンスをGACに集中させることを検討しています。

構造:

  • ディレクトリを含む
    • サイト1つのディレクトリ
    • サイト2ディレクトリ
    • サイト3ディレクトリ
    • すべて上記のサイト
のWeb.configファイル

答えて

0

私は、machine.config、app/web.config、およびuser.configレベル以外の継承された設定ファイルを取得する方法に遭遇していません。ただし、すべてのコンフィグセクション(ConfigurationSectionベース)のconfigSource属性を使用して、サービスエンドポイント、クライアントエンドポイント、バインディング、接続文字列などの共通ファイルを含めることができます。 VSインテリセンスはサポートされていないとマークしますが、動作します。

<configuration> 

    <system.serviceModel> 
     <services configSource="Services.config" /> 
     <client configSource="Client.config" /> 
     <bindings configSource="Bindings.config" /> 
     <behaviors configSource="Behaviors.config" /> 
    </system.serviceModel> 

    <pages configSource="pages.config"/> 

</configuration> 

設定ソースファイルは、アプリケーションのフォルダまたはその下の任意のフォルダに存在する必要があります。上りや絶対パスはありません。しかし、VS2010ではこの制限を克服するというトリックがあります。既存のファイルをリンクとして追加し、「Copy to Output Directory」という名前のプロパティを変更する必要があります。このようにして、絶対パスファイルはアプリケーションフォルダにコピーされ、そこからconfigSourceで参照することができます。 以前のバージョンのVSでは、ポストビルドイベントでファイルをコピーすることも可能ですが、それほどエレガントではありません。

WCF設定を集中管理する場合は、コード内の設定があります。これの大きな利点は、コンパイル時のチェックとVSからのリファクタリングのサポートが得られることです。これがあまりにも聞こえない場合、WCFの大きなプロジェクトでは、設定ファイルの管理は特に何かを変更する必要があるときには悪夢です。このアプローチでは、すべてのサービス、エンドポイント、バインディングなどが定義された共通アセンブリを作成するだけで、WCF設定を集中管理することも非常に簡単です。欠点は、再コンパイルせずにWCF設定を変更する可能性が低いことです。しかし、これらの設定が頻繁に変わらなければ、それは魅力的な選択肢です。

あなたはあなたの含有を設定

%のSYSTEMROOT IISにおける%\ Microsoft.NET \ Frameworkの\ \ CONFIG \ Web.configファイル

場合、またはにあるweb.configファイルを使用することができます

+0

これらのconfigSourceをどのように参照していますか?あなたは完全な道をつけることができますか? EG:

+0

これは相対的で、上がってはいけません。しかし、プロジェクトにファイルへのリンクを追加して、それを常にコピーとしてマークすることで回避することができます。リンクは別のドライブでもフルパスになります。 –

0

ディレクトリをメインWebサイトとして使用し、Webサイトディレクトリをアプリケーションとして配置する場合は、web.configをメインWebサイトに配置して、構造を記述することができます。

関連する問題