WCF - Erhöhen Sie die Readerquoatas beim REST -Service
-
22-10-2019 - |
Frage
Ich habe einen WCF -REST -Service, der eine JSON -String akzeptiert
Einer der Parameter ist eine große Reihe von Zahlen
Dies verursacht den folgenden Fehler - der durch Verfolgung und Verwendung von SVC Trace Viewer sichtbar ist
Es gab einen Fehler, der das Objekt vom Typ Carconfiguration des Typs des Typs verdesste. Die maximale Kontingent -Länge -Quote (8192) wurde beim Lesen von XML -Daten überschritten. Diese Quote kann erhöht werden, indem die Eigenschaft maxstringContentLength im XMLDictionaryReaderquotas -Objekt geändert wird, das beim Erstellen des XML -Lesers verwendet wird.
Jetzt habe ich alle möglichen Artikel gelesen, die beraten, wie man dies korrigiert
Alle empfehlen, verschiedene Konfigurationseinstellungen auf dem Server und dem Client zu erhöhen
z.BFehlerserialisierungszeichenfolge im WebService -Anruf
http://bloggingabout.net/blogs/ramon/archive/2008/08/20/wcf-and-large-messages.aspx
http://social.msdn.microsoft.com/forums/en/wcf/thread/f570823a-8581-45ba-8b0b-ab0c7d7fcae1
Meine Konfigurationsdatei sieht also so aus
<webHttpBinding>
<binding name="webBinding" maxBufferSize="5242880" maxReceivedMessageSize="5242880" >
<readerQuotas maxDepth="5242880" maxStringContentLength="5242880" maxArrayLength="5242880" maxBytesPerRead="5242880" maxNameTableCharCount="5242880"/>
</binding>
</webHttpBinding>
...
...
...
<endpoint
address="/"
binding="webHttpBinding"
bindingConfiguration="webBinding"
Mein Problem ist, dass ich dies auf dem Server ändern kann, aber es gibt keine WCF -Konfigurationseinstellungen im Client als REST -Service, und ich erstelle nur eine HTTP -Anforderung mit der WebClient
Objekt
irgendwelche Ideen?
Lösung
Andere Tipps
Dieser Fehler würde nicht im Client stattfinden, da Leserquoten nur eine WCF-Sache sind und Webclient/httpwebRequest selbst keine Deserialisierung erledigen oder andere Arten von Quoten durchsetzen.
Ich würde also sagen, dass es wahrscheinlich ist, dass Sie die Konfiguration an den falschen Ort setzen und sie nicht abgeholt wird.
Entweder das oder ... Sie verwenden keinen der WCF -DataContract -Serialisierer manuell auf Client -Seite, oder?