2008-09-15 11 views
14

Heute morgen habe ich ein Problem mit der Rückgabe einer Textzeichenfolge als Ergebnis eines Web Service-Aufrufs festgestellt. Ich die Fehler war immer unterFehler beim Serialisieren der Zeichenfolge im WebService-Aufruf

************** Exception Text ************** 
System.ServiceModel.CommunicationException: Error in deserializing body of reply message for operation 'GetFilingTreeXML'. ---> System.InvalidOperationException: There is an error in XML document (1, 9201). ---> System.Xml.XmlException: The maximum string content length quota (8192) has been exceeded while reading XML data. This quota may be increased by changing the MaxStringContentLength property on the XmlDictionaryReaderQuotas object used when creating the XML reader. Line 1, position 9201. 
at System.Xml.XmlExceptionHelper.ThrowXmlException(XmlDictionaryReader reader, String res, String arg1, String arg2, String arg3) 
at System.Xml.XmlExceptionHelper.ThrowMaxStringContentLengthExceeded(XmlDictionaryReader reader, Int32 maxStringContentLength) 
at System.Xml.XmlDictionaryReader.ReadString(Int32 maxStringContentLength) 
at System.Xml.XmlDictionaryReader.ReadString() 
at System.Xml.XmlBaseReader.ReadElementString() 
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderImageServerClientInterfaceSoap.Read10_GetFilingTreeXMLResponse() 
at Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer9.Deserialize(XmlSerializationReader reader) 
at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events) 
--- End of inner exception stack trace --- 
at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events) 
at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle) 
at System.ServiceModel.Dispatcher.XmlSerializerOperationFormatter.DeserializeBody(XmlDictionaryReader reader, MessageVersion version, XmlSerializer serializer, MessagePartDescription returnPart, MessagePartDescriptionCollection bodyParts, Object[] parameters, Boolean isRequest) 
--- End of inner exception stack trace --- 

ich eine Suche gemacht und die Ergebnisse sind unten: Search Results

Die meisten von denen sind WCF verwandten, aber waren genug, um mich in die richtige Richtung zu weisen. Ich werde die Antwort als Antwort posten.

+0

Betreff: Ihre Flagge; es ist komplizierter als das. Bitte fragen Sie auf [meta]. – Will

+0

Entschuldigung für die Frage nach dem Offensichtlichen: Können Sie überprüfen, dass die Zeichenfolge, die Sie vom Webdienst zurückgeben, länger als 8192 Byte ist? – Espo

+0

Ja, es war länger und ich musste die Konfigurationsdatei aktualisieren, wie in verlinkten Blogpost erwähnt, und das reparierte es. danke für die antwort – MikeScott8

Antwort

29

Versuchen Sie diesen Blogpost here. Sie können die MaxStringContentLength-Eigenschaft in der Bindungskonfiguration ändern.

+0

ja es war die lösung, ich musste die config-datei aktualisieren, wie im verlinkten blog-post erwähnt, und das reparierte es. Danke für die Antwort – MikeScott8

+3

Nur zur Verdeutlichung, die Leserkontingent Einstellungen müssen in der app.config oder web.config für die Seite der Kommunikation gemacht werden, die die große Zeichenfolge erhalten wird. d. h., ich musste eine große Datenmenge von meiner Client-App an meinen Dienstendpunkt senden. Daher musste ich die Änderungen in der Datei web.config für den Dienst vornehmen. Die Rückgabe großer Daten vom Dienst an die Client-App erforderte Änderungen in der app.config des Clients. Hoffe das hilft jemand anderem. – kirps

6

Jow Wirtley's blog post wies mich in die richtige Richtung.

Ich musste nur die Bindungen in der app.config der Client-App aktualisieren und alles funktioniert jetzt.