1

Visual Stuido 2010 Web サイト プロジェクト (Web アプリケーションではない) があります。Web サイトのボタンからアドホックに、またはスケジュールされた Web サービス呼び出しを行う機能を提供する必要があります。そこで、ターゲット Web サービスへの WCF 呼び出しを含む ac# ライブラリを作成します。次に、Web サイトからライブラリへの参照を追加します。ライブラリでパブリック メソッドを呼び出してから、Web サービスを呼び出すことができるようになりました。

私の問題は、Web サービスの呼び出しに必要な system.servicemodel web.config エントリを Web サイトが要求しているように見えることです。これは機能しますが、クライアント Web サイトの web.config と私の c# ライブラリの app.config の 2 つの場所でそれらを維持する必要があることを意味します。また、ライブラリ アプリを参照する ac# コンソール アプリケーション (スケジュールに従って Web サービス呼び出しをトリガーするため) も作成しました。これも app.config に system.servicemodel エントリをコピーする必要があります。同じことが接続文字列にも当てはまります。

重複した web.config / app.config エントリをソリューションのさまざまなプロジェクトに分散させることへの依存を回避する簡単な方法があるかどうかは誰にもわかりませんか?

ありがとう、ロブ。

4

1 に答える 1

3

関連する構成セクションを個別のファイルに「外部化」し、それらを両方から参照することができapp.configますweb.config.

任意の .NET 構成セクションを外部構成ファイルに格納できるため、次のように記述できます。

<system.serviceModel>
  <bindings configSource="bindings.config" />
  <behaviors configSource="behaviors.config" />
  <client configSource="client.config" /> 
  ....
</system.serviceModel>

これで、外部ファイルは構成内の関連する構成セクションとまったく同じになります。

bindings.config:

<?xml version="1.0" encoding="utf-8" />
<bindings>
   <basicHttpBinding>
       <binding name="......."  ...... />
   </basicHttpBinding>
</bindings>

注: Visual Studio のエディターは属性について不平を言いconfigSource=ますが、Intellisense は混同されています。configSource属性各構成セクションに存在し、問題なく機能します。

注 #2: これは構成セクション グループ<system.serviceModel>であるため、全体を外部化することはできません。残念ながら、それらを外部ファイルに入れる手段はありません。

于 2012-12-16T09:03:28.657 に答える