Qu'est-ce WCF erreur de dire: “la Coutume de l'outil avertissement: Impossible d'importer wsdl:portType”

J'ai créé un service WCF projet de bibliothèque dans ma solution, et le service de références. J'utilise les services d'une bibliothèque de classe, donc j'ai des références de mon application WPF projet, en plus de la bibliothèque de classe. Des Services sont mis en place avant droite - seulement changé d'obtenir async des fonctions de service.

Tout fonctionnait bien, - jusqu'à ce que je voulais mettre à jour mon références de service. Il a échoué, alors finalement, j'ai roulé en arrière et de tentative d'appel, mais il n'a pas même alors! Donc, - mise à jour des références de service échoue sans faire aucune modification. Pourquoi?!

L'erreur que j'obtiens est celui-ci:

Custom tool error: Failed to generate code for the service reference 
'MyServiceReference'.  Please check other error and warning messages for details.   

L'avertissement donne plus d'informations:

Custom tool warning: Cannot import wsdl:portType
Detail: An exception was thrown while running a WSDL import extension: 
System.ServiceModel.Description.DataContractSerializerMessageContractImporter
Error: List of referenced types contains more than one type with data contract name 'Patient' in  
namespace 'http://schemas.datacontract.org/2004/07/MyApp.Model'. Need to exclude all but one of the 
following types. Only matching types can be valid references: 
"MyApp.Dashboard.MyServiceReference.Patient, Medski.Dashboard, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" (matching)
"MyApp.Model.Patient, MyApp.Model, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" (matching)
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:portType[@name='ISomeService']

Il y a deux avertissements trop en disant:

Custom tool warning: Cannot import wsdl:binding
Detail: There was an error importing a wsdl:portType that the wsdl:binding is dependent on.
XPath to wsdl:portType: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:portType[@name='ISomeService']
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:binding[@name='WSHttpBinding_ISomeService']  

Et de même pour:

Custom tool warning: Cannot import wsdl:port .. 

Je trouve cela déroutant.. je n'ai pas un Patient de classe sur le côté client de tableau de bord à l'exception de celui que j'ai eu par le biais du service de référence. Donc, ça veut dire quoi? Et pourquoi est-il soudainement apparaître? Rappelez-vous: je n'ai même pas changer quoi que ce soit!

Maintenant, la solution a été trouvée ici, mais sans une explication de ce que cela signifie. De la sorte; dans la section "Configurer le service de référence" pour le service que j'ai décocher la case "Réutilisation des types dans les assemblys référencés" case à cocher. La reconstruction de maintenant, tout fonctionne très bien sans problèmes. Mais qu'ai-je vraiment changer? Cela fera un impact sur ma demande? Et quand décochez cette case? Je ne veux réutiliser les types que j'ai mis en place DataContract sur, mais pas plus. Vais-je encore accès à ces sans cette vérification?

InformationsquelleAutor stiank81 | 2009-12-09