7

昨日からVisualStudio2012 RCの使用を開始しましたが、WCFソリューションが1つあります。別のソリューションで[参照の追加/削除]ダイアログを使用しようとすると、サービスを追加した後に以下のエラーが発生します。

エラー1Reference.svcmap:サービス参照「DPService」のコードを生成できませんでした。wsdl:portTypeをインポートできません詳細:WSDLインポート拡張機能の実行中に例外がスローされました:System.ServiceModel.Description.DataContractSerializerMessageContractImporterエラー:タイプ'WebSupergoo.ABCpdf8.Objects.Bookmark'は、サポートされていない再帰的なコレクションデータコントラクトです。コレクション'WebSupergoo.ABCpdf8.Objects.Bookmark'の定義を変更して、それ自体への参照を削除することを検討してください。エラーソースへのXPath:// wsdl:definitions [@ targetNamespace ='http://tempuri.org/'] / wsdl:portType [@ name ='IGQDynamicPackaging'] wsdl:bindingをインポートできません詳細:インポート中にエラーが発生しましたwsdl:bindingが依存しているwsdl:portType。wsdl:portTypeへのXPath:// wsdl:定義[@targetNamespace='http://tempuri.org/'] / wsdl:portType [@ name ='IGQDynamicPackaging']エラーソースへのXPath:// wsdl:definitions [@ targetNamespace ='http://tempuri.org /'] / wsdl:binding [@ name ='WSHttpContextBinding_IGQDynamicPackaging'] wsdl:portをインポートできません詳細:wsdl:portが依存しているwsdl:bindingのインポート中にエラーが発生しました。wsdl:bindingへのXPath:// wsdl:definitions [@ targetNamespace ='http://tempuri.org/'] / wsdl:binding [@ name ='WSHttpContextBinding_IGQDynamicPackaging']エラーソースへのXPath:// wsdl:definitions [@ targetNamespace ='http://tempuri.org/']/wsdl:service[@name='GQService']/wsdl:port[@name='WSHttpContextBinding_IGQDynamicPackaging'] App_WebReferences / DPService / portType [@ name ='IGQDynamicPackaging']エラーソースへのXPath:// wsdl:definitions [@ targetNamespace ='http://tempuri.org/']/wsdl:binding[@name='WSHttpContextBinding_IGQDynamicPackaging'] wsdlをインポートできません:ポートの詳細:wsdl:portが依存しているwsdl:bindingのインポート中にエラーが発生しました。wsdl:bindingへのXPath:// wsdl:definitions [@ targetNamespace ='http://tempuri.org/'] / wsdl:binding [@ name ='WSHttpContextBinding_IGQDynamicPackaging']エラーソースへのXPath:// wsdl:definitions [@ targetNamespace ='http://tempuri.org/']/wsdl:service[@name='GQService']/wsdl:port[@name='WSHttpContextBinding_IGQDynamicPackaging'] App_WebReferences / DPService / portType [@ name ='IGQDynamicPackaging']エラーソースへのXPath:// wsdl:definitions [@ targetNamespace ='http://tempuri.org/']/wsdl:binding[@name='WSHttpContextBinding_IGQDynamicPackaging'] wsdlをインポートできません:ポートの詳細:wsdl:portが依存しているwsdl:bindingのインポート中にエラーが発生しました。wsdl:bindingへのXPath:// wsdl:definitions [@ targetNamespace ='http://tempuri.org/'] / wsdl:binding [@ name ='WSHttpContextBinding_IGQDynamicPackaging']エラーソースへのXPath:// wsdl:definitions [@ targetNamespace ='http://tempuri.org/']/wsdl:service[@name='GQService']/wsdl:port[@name='WSHttpContextBinding_IGQDynamicPackaging'] App_WebReferences / DPService / binding [@ name ='WSHttpContextBinding_IGQDynamicPackaging'] wsdl:portをインポートできません詳細:wsdl:portが依存しているwsdl:bindingのインポート中にエラーが発生しました。wsdl:bindingへのXPath:// wsdl:definitions [@ targetNamespace ='http://tempuri.org/'] / wsdl:binding [@ name ='WSHttpContextBinding_IGQDynamicPackaging']エラーソースへのXPath:// wsdl:definitions [@ targetNamespace ='http://tempuri.org/']/wsdl:service[@name='GQService']/wsdl:port[@name='WSHttpContextBinding_IGQDynamicPackaging'] App_WebReferences / DPService / binding [@ name ='WSHttpContextBinding_IGQDynamicPackaging'] wsdl:portをインポートできません詳細:wsdl:portが依存しているwsdl:bindingのインポート中にエラーが発生しました。wsdl:bindingへのXPath:// wsdl:definitions [@ targetNamespace ='http://tempuri.org/'] / wsdl:binding [@ name ='WSHttpContextBinding_IGQDynamicPackaging']エラーソースへのXPath:// wsdl:definitions [@ targetNamespace ='http://tempuri.org/']/wsdl:service[@name='GQService']/wsdl:port[@name='WSHttpContextBinding_IGQDynamicPackaging'] App_WebReferences / DPService /

注意:VS 2010を使用したとき、上記のサービスは正常に機能していました。参考までに、[参照されるアセンブリでタイプを再利用する]をオンにし、[参照されるすべてのアセンブリでタイプを再利用する]オプションをオンにしました。

同じ設定がVS2010で正常に機能しており、参照を追加できます。しかし、現在、VS 2012 RCをインストールした後、VS2010とVS2012の両方の参照を追加できません。任意の解決策またはこれを回避します。

ロールバックしてVS2010を使用したいのですが、「サービスの追加」ではVS2010でも同じ参照エラーが発生します。

4

3 に答える 3

43

同様の問題が発生し、[サービス参照の構成]ダイアログの[参照されるアセンブリでタイプを再利用する]チェックボックスをオフにしました。

1)[サービス参照]を右クリックします。2)[サービス参照の構成]を選択します。3)[参照されるアセンブリでタイプを再利用する]のチェックを外します。

これを行うことのすべての影響についてはわかりませんが、リファレンスを再び使用できるようになりました。

于 2012-06-20T22:03:02.297 に答える
4

'CustomerServiceReference'は、プロジェクトによって参照される2つのアセンブリで定義されているようです。コードジェネレーターは、どちらを使用する必要があるかを認識していません。

ラースが言ったように、この問題を取り除くために。サービス参照を構成できます。[詳細オプション]タブで、[参照されているすべてのアセンブリでタイプを再利用する]を無効にできます([指定された参照されているアセンブリでタイプを再利用する]を選択します)。この問題の原因となっているアセンブリを除くすべてのアセンブリを選択できます(これにより、CustomerServiceReferenceがエラーメッセージで示されます)。

于 2013-10-28T08:01:32.417 に答える
1

アンインストールvs2012、vs 2010では、「不明なエラー」、小さなエラーメッセージ、修復vs 2010(再インストール)が表示され、問題ありません。

于 2012-06-21T08:27:05.163 に答える