0

svcutil を使用して、wcf エンドポイントからサービス参照を生成しています。最近まですべて正常に機能していましたが、突然、すべてのエンドポイントに対して次のエラーが発生し始めました。

WS-Metadata Exchange または DISCO を使用して、'http://localhost.myservice.com/MyEndpoint.svc' からメタデータをダウンロードしようとしています。エラー: wsdl:binding をインポートできません 詳細: 指定されたキーがディクショナリに存在しませんでした。エラー ソースへの XPath: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:binding[@name='wsMyEndpoint']

エラー: wsdl:port をインポートできません 詳細: wsdl:port が依存している wsdl:binding のインポート中にエラーが発生しました。wsdl:binding への XPath: //wsdl:definitions[@targetNamespace='http://tempuri.org/' ]/wsdl:binding[@name='wsMyEndpoint'] エラー ソースへの XPath: //wsdl:definitions[@ targetNamespace='http://myservice.com/services/']/wsdl:service[@name='MyEndpoint']/wsdl:port[@name='wsMyEndpoint']

エラー: wsdl:binding をインポートできません 詳細: 指定されたキーがディクショナリに存在しませんでした。エラー ソースへの XPath: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:binding[@name='netNamedMyEndpoint']

エラー: wsdl:port をインポートできません 詳細: wsdl:port が依存している wsdl:binding のインポート中にエラーが発生しました。wsdl:binding への XPath: //wsdl:definitions[@targetNamespace='http://tempuri.org/' ]/wsdl:binding[@name='netNamedMyEndpoint'] エラー ソースへの XPath: //wsdl:definitions[@ targetNamespace='http://myservice.com/services/']/wsdl:service[@name='MyEndpoint']/wsdl:port[@name='netNamedMyEndpoint']

ファイルを生成しています... 警告: コードは生成されませんでした。クライアントを生成しようとした場合、メタデータ ドキュメントに有効なコントラクトまたはサービスが含まれていないか、すべてのコントラクト/サービスが /reference アセンブリに存在することが検出されたことが原因である可能性があります。すべてのメタデータ ドキュメントがツールに渡されたことを確認します。

サービス参照を生成するバッチ ファイルで svcutil を呼び出して、サービス参照を生成します。

別の開発者が行った変更である可能性があると思いますが、それは単なる推測です。ここで何が問題なのかを調査する方法を知っている人、または解決策に関する正しい方向性を教えてくれる人もいます。

4

1 に答える 1

0

エンドポイントからクライアントを自動的に生成するには、サービスを正常にビルドしてデプロイし、他のエラーが発生しないようにする必要があります。さらに、IIS はサービスからのメッセージを受け入れる準備ができている必要があります。

試してみるデバッグ: デプロイしたら、手動でバッチ ファイルを実行すると、プロキシ/サービス参照を生成できますか? エンドポイントで VS をポイントし、「破棄」プロジェクトでサービス参照を作成すると、うまくいきますか?

そうでない場合は、関連するサービスの動作に要素の構成を投稿してください。そこに答えがあるのではないかと思います。

于 2012-12-08T16:58:06.620 に答える