2011-10-18 5 views
0

J'ai un service Web ASP.NET qui utilise Entity Framework 4.0.ASP.NET WebService - Entity Framework

Quand je lance l'une des méthodes sur le WebService localement, il jette l'exception suivante:

System.InvalidOperationException: Il y avait une erreur générer le document XML . ---> System.InvalidOperationException: Pour être XML serializable, les types qui héritent de IEnumerable doivent avoir une implémentation de Add (System.Object) à tous les niveaux de leur hiérarchie d'héritage . System.Data.Objects.ObjectQuery`1 [[testGoogleEarth.Model.Marker, testGoogleEarth, Version = 1.0.0.0, Culture = neutre, PublicKeyToken = null]] n'implémente pas Add (System.Object). à System.Xml.Serialization.TypeScope.GetEnumeratorElementType (type type, TypeFlags & drapeaux) à System.Xml.Serialization.TypeScope.ImportTypeDesc (type Type, MemberInfo MemberInfo, Boolean directReference) à System.Xml.Serialization. TypeScope.GetTypeDesc (type de type, la source MemberInfo , Boolean directReference, Boolean throwOnError) à System.Xml.Serialization.XmlSerializationWriter.CreateUnknownTypeException (type type) à System.Xml.Serialization.XmlSerializationWriter.WriteTypedPrimitive (String nom , String ns, Object o, Boolean xsiType) à Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.W rite1_Object (String n, cordes, ns objet O, Boolean IsNullable, Boolean needType) à Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write7_JsonResult (String n, cordes ns, JsonResult o, Boolean IsNullable, Boolean needType)
à Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write9_JsonResult (Object o) à System.Xml.Serialization.XmlSerializer.Serialize (XmlWriter xmlwriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, id String) --- Fin de trace de pile d'exception interne --- at System.Xml.Serialization.XmlSerializer.Serialize (XmlWriter xmlWriter, Object o, espaces de noms XmlSerializerNamespaces, String encodingStyle, String id) à System.Xml.Serialization.XmlSerializer.Serialize (TextWriter TextWriter, o de l'objet, XmlSerializerNamespaces espaces de noms) à System.Web.Services.Protocols.XmlReturnWriter.Write (HttpResponse réponse , Stream outputStream, objet returnValue) à System.Web.Services.Protocols.WebServiceHandler.WriteReturns (Object [] returnValues) à System.Web.Services.Protocols.WebServiceHandler.Invoke()

Je courais cet échantillon sur une Windows Server 2008. .NET 4.0 installé.

Une idée?

Merci

+1

S'il vous plaît, tout en posant une question vous n'avez pas besoin de donner une page d'Exception, publiez plutôt votre code d'abord et donnez la phrase principale dans votre exception. Alors, que nous pouvons vous aider. –

+0

c'est l'exception entière que j'ai eu! Im en utilisant le service Web ASP.NET avec Ef 4.0. – Bill

Répondre

0

Il y a un problème avec le XMLSerializer que vous utilisez pour sérialiser la demande WCF à travers le fil. Toute classe IEnumerable dans votre graphique d'objet doit avoir une méthode d'ajout publique.Voir les détails ici
http://www.hanselman.com/blog/YouMustImplementTheAddSystemObjectMethodOnMyClassBecauseItInheritsFromIEnumerable.aspx

+0

C'est un service Web ASP.NET et non WCF utilisant EF 4.0 – Bill

+0

Désolé ma mauvaise, mais le problème est lié au sérialiseur et non le service de service WCF \ asmx. Avez-vous vérifié le graphique de l'objet? – Chandermani

+0

Comment vérifier le graphique de l'objet? Aucune idée en fait. Merci – Bill