Ich habe keine Probleme, eine große Datenmenge abzurufen, aber wenn ich sie zurück an den Dienst sende, wird dieser Fehler angezeigt. Ich habe versucht, das Element zu den web.config und servicereference.clientconfig hinzuzufügen, und es wird nicht in beiden erkannt. An einer Stelle erhielt ich eine Nachricht über das Hinzufügen von ReaderQuotas zu bindingElementExtensions, aber ich kann nichts Nützliches finden, wie man das macht. Ich habe Posts gefunden, die sagen, dass ich die devenv.exe.config und so ändern musste, aber dabei habe ich VS. Ich habe versucht, dies für zwei Tage zu lösen, damit jede Hilfe geschätzt wird.
edit: Hier ist der Bindungsbereich von web.config:
%Vor%und servicereference.clientconfig:
%Vor%Beide wurden von VS generiert.
Sie verpassen einfach die Konfiguration für die maximale Länge des Zeichenfolgeninhalts .
Fügen Sie dies Ihren Bindungsattributen (Client und Server) hinzu
%Vor% Leider habe ich nicht bemerkt, dass dieses untergeordnete Element unter der Codierung liegt, die verwendet wird, wenn eine benutzerdefinierte Bindung verwendet wird, in Ihrem Beispiel scheint es binaryMessageEncoding
zu sein. Wenn nicht, versuchen Sie die anderen Kodierungen mit der Einstellung.
if Das maximale Kontingent für den Inhalt der Zeichenfolge (8192) wurde beim Lesen der XML-Daten überschritten. "ignoriert Ihre web.config-Einstellungen, SELBST nachdem Sie sie festgelegt haben Sie können das Problem auch in Ihrem Code lösen, indem Sie eine Instanz von XmlDictionaryReaderQuotas erstellen und MaxStringContentLength auf 2147483647
setzenVerwenden Sie dann einfach die Instanz von XmlDictionaryReaderQuotas, die hier als mycreatedreaderquota p> angezeigt wird %Vor%
edit : Dies hat einen unvollständigen Entwurf gespeichert, sorry
Streaming ist wahrscheinlich die beste Option auf der Client-Seite, um die Blockierung des gepufferten transferMode zu vermeiden. Ich weiß nicht genau, wie groß die Daten konsistent sein werden, aber Ihr Service wird sich auf der Client-Seite ein bisschen netter verhalten, wenn Sie diesen Weg gehen. Ein guter Grund für die Konfiguration nur der Client-Seite für das Streaming finden Sie hier: Ссылка .
Hoffentlich hilft eine Kombination der oben genannten
Haben Sie versucht, die maxStringContentLength
innerhalb der Config für den Service zu setzen? In meiner Situation erlaubte es dem Silverlight-Client, für den Dienst den gewünschten Wert für maxStringContentLength
zu verwenden.
Eine Anmerkung ist, dass wenn Sie längere Strings zulassen, aber maxReceivedMessageSize
nicht anpassen, dies ebenfalls Probleme verursachen kann. Das maxReceivedMessageSize
muss sowohl auf dem Dienst als auch auf dem Client kontrolliert werden, da man die Werte nicht von einem anderen erbt.
Tags und Links wcf silverlight