3

次のように、ベース WCF サービス - クライアント WCF サービス - コンシューマー ベース WCF サービス モデルに取り組んでいます。

ここに画像の説明を入力

このモデルでは、ベース WCF サービスを作成し、1 つの WCF サービスを作成しました。ClientWCFService と 1 つの ASMX サービス。BaseWCFServiceProxy.cs を使用する ClientASMXservice SVCUtil.exe を使用するベース WCF サービスのプロキシ クラス。

ClientWCFService と ClientASMXservice はスタンドアロン環境で正常に動作しています。次に、同じプロキシ クラス BaseWCFServiceProxy.cs を使用してコンシューマー コンソール アプリケーションを作成し、BaseWcfService クラスを使用して ClientWCFService と ClientASMXservice の両方にアクセスします。

OOP ルールに従って、BaseWcfService クラスは ClientWCFService および ClientASMXservice の基本クラスであり、基本サービス クラス コンストラクターを使用してこれらのサービスにアクセスできます。

サービス呼び出しは次のとおりです。

 ModelWcfServiceContractClient _client = new ModelWcfServiceContractClient("IModelWcfServiceContract","http://localhost:64242/ClientWCFServiceWcfUsingSVCProxy.svc");

クライアントASMXサービス用

ModelWcfServiceContractClient _client = new ModelWcfServiceContractClient("IModelWcfServiceContract","http://localhost:64396/ClientASMXServiceWcfUsingSVCProxy.asmx");

コンシューマー コンソール アプリケーションは正常に構築されていますが、実行時に ModelWCFServiceContractClient オブジェクトを初期化するときに、次のようにInvalidOperation 例外がスローされます。

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

この問題を解決するために、サービスの種類ごとに異なるエンドポイントを使用しようとしましたが、成功しませんでした。

より迅速な対応が評価されます。また、スペル ミスをクリアすることによって生成されるアラートを読む時間が無駄になるため、スペル ミスをクリアするだけで私を助けないでください。時間は私にとって重要です..

ありがとう

4

1 に答える 1

2

これを試してください(できればフォローしてください):

Visual Studio で、 (プロキシ クラスModelWcfProxyを生成した) ServiceReference を含むプロジェクトを選択します。ModelWcfServiceContractClient

ソリューション エクスプローラーのメニュー バーから [すべてのファイルを表示] を選択します。

Service References フォルダーと生成された Service Reference を展開します。.svcmap ファイルを見つけ、下を見て Reference.cs ファイルを見つけます。

System.ServiceModel.ServiceContractAttribute生成されたインターフェースの上部に が定義されているはずです。属性コンストラクターで、ConfigurationName プロパティが設定されていることを確認する必要があります。このコントラクト構成名は、構成で定義された名前、またはメソッドに送信する名前と一致する必要があります。

ModelWcfServiceContractClient _client = new ModelWcfServiceContractClient("IModelWcfServiceContract","http://localhost:64242/ClientWCFServiceWcfUsingSVCProxy.svc");

お役に立てれば。

于 2012-02-21T14:36:47.113 に答える