7

多数の Web サービスを使用する Web アプリケーション (ASP.NET 3.5) を開発しています。Web サービスごとに個別の dll プロジェクトを作成しました。これらのプロジェクトには、サービス参照とクライアント コードが含まれています。

ただし、この情報は dll の app.config ファイルにもありますが、呼び出し元の Web サイトの web.config に<system.serviceModel>情報 (<bindings>およびノー​​ド) が含まれている必要があります。<client>serviceclass.dll.config を Web サイトの bin ディレクトリにコピーしようとしましたが、これは役に立ちませんでした。

WCF クライアントの構成を一元化する方法はありますか?

4

6 に答える 6

4

私はWCFの経験を制限しただけで、すべてBasicHTTPバインディングを使用しています。しかし、私はWCFのxmlファイルにアレルギーがあり、これまでのところそれらを回避することができました。これは一般的にはお勧めしませんが、構成の詳細をアプリの既存の構成ストアに入れて、プログラムで適用します。たとえば、Webサービスプロキシでは、「バインディング」と「エンドポイント」を取得し、プログラムで設定をバインディングとエンドポイントに適用するクライアントのコンストラクターを使用します。

ここでは、より効率的な解決策について説明しているようです。カスタムの場所からWCF構成を読み取るが、まだ試していません。

于 2009-02-02T12:47:39.813 に答える
4

私の経験から、ライブラリ プロジェクトは app.config を読み取ることはありません。

したがって、ファイルは使用されていないため、実際に削除できます。代わりにライブラリのホスト構成が読み取られるため、エンドポイントとバインディング構成が存在する唯一の場所になります。

于 2009-02-02T13:57:59.187 に答える
3

構成ファイルは、エントリ ポイントを持つ実行可能ファイルによって読み取られることに注意してください。ライブラリ dll にはエントリ ポイントがないため、それを読み取るのはアセンブリではありません。実行中のアセンブリには、読み取る構成ファイルが必要です。

Web 構成を一元化したい場合は、仮想ディレクトリを使用して IIS にネストすることを検討することをお勧めします。これにより、構成の継承を使用して、必要なものを一元化できます。

于 2009-02-02T14:10:22.330 に答える
3

xml 構成を忘れて、コンストラクターまたはカスタム "サービス ファクトリ" 内のサービスに関連付けられた Binding クラスと Endpoint クラスを構築することができます。iDesign にはこれに関する良い情報があります: http://www.idesign.net/idesign/DesktopDefault.aspx?tabindex=5&tabid=11 (In Proc Factory を参照)

彼らのアプローチでは、サービスに属性を設定して、サービスがどのように機能するか (つまり、[インターネット]、[イントラネット]、[BusinessToBusiness]) を高レベルで指定し、サービス ファクトリが各シナリオのベスト プラクティスに従ってサービスを構成します。彼らの本は、この種のサービスの構築について説明しています: http://www.amazon.com/Programming-WCF-Services-Juval-Lowy/dp/0596526997

構成の XML 構成を共有したいだけの場合は、configSource 属性を使用して構成のパスを指定することができます。 servicemodel-section.aspx

于 2009-02-02T13:35:59.200 に答える
0

First of all class libraries (DLLs) do not have their own configuration, however they can read the configuration of their host (Web/Executable etc.). That being said, I still maintain an app.config file on the library projects as a template and easy reference.

As far as the service configuration itself is concerned, WCF configuration can make somebody easily pull their hair out. It is an over-engineered over-complicated piece. The goal of your applications should be to depend least on the configuration, while maintaining flexibility of deployment scenarios your product is going to come across.

于 2013-01-11T00:10:53.493 に答える