0

WCF サービスへの参照について質問があります。私は2つのアプリを持っています:

コンソール アプリ
-- ライブラリ
---- WCF サービス

コンソール アプリとライブラリは同じソリューションにあります。ライブラリ内の WCF サービスにより、その app.config には WCF サービスの情報が含まれています。

コンソール アプリの構成には、WCF サービスに関するものは何もありません。コンソール アプリは、ライブラリを介して間接的に WCF サービスを呼び出します。コンソール アプリの構成に WCF 情報がないのはそのためだと思います (Web サービスについて何も知らないため)。コンソール アプリは、WCF 呼び出しを処理するライブラリ内の静的メソッドを呼び出します。

上記の呼び出しで次のエラーが発生します。

ServiceModel クライアント構成セクションで、コントラクト 'MyServiceReference.IMyService' を参照する既定のエンドポイント要素が見つかりませんでした。これは、アプリケーションの構成ファイルが見つからなかったか、このコントラクトに一致するエンドポイント要素がクライアント要素に見つからなかったためである可能性があります

ホスト (コンソール アプリ) はライブラリからの WCF サービス関連情報を必要としますか? もしそうなら、なぜVS2010はそれを追加しなかったのですか?

4

2 に答える 2

0

私がお勧めするのは、SVCUtil.exe を実行することです。次のように、実行中のサービスに対して実行できます。

svcutil.exe http://localhost:Port/YourSvcClass/YourSvcMethod /language:c# 

それが行うことは、c# でクライアント側の c# (または vb) スタブ クラスを構築し、さらに、接続する必要がある正確なクライアント側の構成ファイルを含む .Config ファイルを構築することです...すべての良いもの。次のように、WCF dll に対して svcutil を実行することもできます。

svcutil.exe c:\yourfolder\YourService.dll /language:c#

スタブ クラスを使用するかどうかにかかわらず、.config ファイルはクライアントのセットアップに役立ちます。

幸運を

于 2012-12-14T15:20:28.517 に答える
0

作成したライブラリ (階層内の "--Library") は、WCF サービスへのサービス参照を追加した可能性があります。(「図書館で」は意味がないので、それがあなたの意図したものだと思います)。これは、WCF サービスに関する一連の情報がライブラリの app.config に追加されたことを意味します。ライブラリが参照する WCF サービスに正しくアクセスするには、ライブラリを参照するすべての exe の app.config にその情報が含まれている必要があります。

于 2012-12-14T04:40:38.523 に答える