WCF サービスでこのエラーが発生しています。これは、Microsoft Service Trace Viewer を使用してエラーの詳細を表示したときに表示されるエラー レポートです。
WSDL インポート拡張機能の実行中に例外がスローされました: System.ServiceModel.Description.DataContractSerializerMessageContractImporter エラー: 参照された型のリストには、名前空間 ' http://schemas.datacontract.org/2004にデータ コントラクト名 'EchoAddress' を持つ複数の型が含まれています/07/WorldVision.NewZealand.CIMS.Common.Entities '. 次のタイプの 1 つを除くすべてを除外する必要があります。一致するタイプのみが有効な参照になることができます。 、Version=0.0.0.0、Culture=neutral、PublicKeyToken=null" (一致)
[DataContract] 属性を使用して WCF DataContracts として定義した「EchoAddress」という 2 つの別個のクラスがあり、どちらも WorldVision.NewZealand.CIMS.Common.Entities 名前空間に存在するようです。確認しましたが、そうではありません。このエラーには、次のいずれかのタイプを除外する必要があることも示されています。
CIMS.CrmService.EchoAddress CIMS.AddressService.EchoAddress
しかし、WorldVision.NewZealand.CIMS.Common.Entities 名前空間で 'EchoAddress' クラスを 1 回だけ宣言します。これらは、「CrmService」と「AddressService」の両方で同じタイプ (EchoAddress) への参照であるように見えます。これらは、メイン プロジェクトから「サービス参照」として参照している 2 つの別個の WCF サービスです。
これは EchoAddress クラスの型宣言であり、別のプロジェクトで宣言され、実際の WCF サービスを含むプロジェクトによって参照されます。私の主なプロジェクトは、サービスをサービス参照として参照します。
[DataContract]
public class EchoAddress
{
[DataMember]
public string AddressType { get; set; }
[DataMember]
public Dictionary<string,string> AddressLines { get; set; }
...
}
私は次のことを試しました:
- VS2010 では、CrmService と AddressService の両方の WCF サービスについて、WCF サービス参照を右クリックし、サービス参照を構成し、Web サービス参照構成の [詳細設定] メニューから [参照アセンブリで型を再利用する] のチェックを外します。
- Web サービス参照を削除し、VS2010 を閉じ、「管理者として実行」で VS2010 を開き、Web サービス参照を再度追加しました。
- EchoAddress への重複参照についてソリューション全体を検索しました
- 次のように、すべてのデータ型に対して [DataContract(IsReference = false)] を設定します 。 -from-referenced-assemblies.aspx
- EchoAddress' とも呼ばれる [DataMember] でマークされたクラス メンバーがどこにもないことを確認しました (明らかに、このタイプの構造が存在する場合にこのエラーが発生する可能性があります。詳細については、上記のリンクを参照してください)。
- 「循環」タイプの参照がないことを確認するために、すべてのプロジェクト参照をチェックしました (たとえば、プロジェクト 1 はプロジェクト 2 を参照し、プロジェクト 1 はサービス 1 へのサービス参照を持ち、プロジェクト 2 もサービス 1 へのサービス参照を持ちます。サービス参照、プロジェクト参照、および 'これを引き起こした可能性のある標準のdll参照。
- サービス参照の更新、個々のプロジェクトの再構築、ソリューション全体、考えられるあらゆる組み合わせを試してみました!
- MS Dynamics CRM API から OrganizationServiceContext.SaveChanges() を使用して、WCF サービス経由で CRM に書き込もうとしている時点で失敗します。
- これらを読んだ:
- http://social.msdn.microsoft.com/Forums/en/wcf/thread/6ab067fe-0607-4b6e-8ab7-a5e2db1dd490
- この WCF エラーの意味: 「カスタム ツールの警告: wsdl:portType をインポートできません」
- http://www.lukepuplett.com/2010/07/note-to-self-don-let-wcf-svcutil-reuse.html
- そしてちょうど読み終わったところです:
- http://marktinderholt.wordpress.com/2010/02/12/silverlight-wcf-service-reference-weirdness-solved-custom-tool-error-failed-to-generate-code-for-the-service-reference- %E2%80%98servicereference1%E2%80%99-please-check-other-error-and-warnin/
何か案は?