configuration wcf maxStringContentLength ne semble pas fonctionner
Nous essayons d'envoyer une grande chaîne xml pour une méthode de service dans WCF et nous obtenons l'erreur
Le maximum de la chaîne de la longueur du contenu
quota (8192) a été dépassé lorsque l'
la lecture des données XML.
L'erreur suggère l'augmentation de la maxstringcontentlength
bien que nous n'étions pas sûrs si nous étions censés le faire sur le côté client ou du côté serveur ou les deux. Nous avons essayé de les mettre sur les deux, mais nous semblent toujours obtenir l'erreur. Je vais poster le client et le service configs ci-dessous. Je suis en supposant qu'il existe un problème avec un ou deux d'entre eux prévention de ce travail.
Des suggestions?
Client:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_ITESTService"
closeTimeout="00:01:00" openTimeout="00:01:00"
receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false"
hostNameComparisonMode="StrongWildcard"
maxBufferSize="65536" maxBufferPoolSize="524288"
maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8"
transferMode="Buffered" useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="2147483647"
maxArrayLength="2147483647" maxBytesPerRead="4096"
maxNameTableCharCount="2147483647" />
<security mode="None" />
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint name="BasicHttpBinding_ITESTService"
address="http://localhost/TESTService.svc"
binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_ITESTService"
contract="TESTService.ITESTService" />
</client>
</system.serviceModel>
Serveur:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding
name="BasicHttpBinding_Service1"
maxBufferSize="2147483647"
maxReceivedMessageSize="2147483647">
<readerQuotas maxDepth="32"
maxStringContentLength="2147483647" maxArrayLength="2147483647"
maxBytesPerRead="4096" maxNameTableCharCount="2147483647" />
<security mode="None" />
</binding>
</basicHttpBinding>
</bindings>
<services>
<service name="TESTService">
<endpoint name="BasicHttpBinding_Service1"
address="http://localhost/TESTService.svc"
binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_Service1"
contract="ITESTService" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
OriginalL'auteur gleasonomicon | 2011-01-29
Vous devez vous connecter pour publier un commentaire.
Ce fil explique en détail comment spécifier les paramètres de liaison sur le serveur et le client correctement afin de changer le MaxStringContentLength.
Cette autre fil fournit également une méthode claire et efficace de réponse sur l'utilisation de la readerQuotas.
OriginalL'auteur Peladao
Essayez d'ajouter un 'défaut' de liaison (sans nom spécifié).
Ajouter le readerQuota paramètres de cette liaison.
Ensuite, vous pouvez même supprimer le
readerQuota
paramètres de la liaison que vous utilisez réellement.Cela a fonctionné pour moi (bien que je ne suis pas sûr pourquoi, la
readerQuotas
sur la bonne nommé de liaison sont ignorés par la WCF)OriginalL'auteur D.Tiemstra
"par défaut" l'option de reliure a fonctionné pour moi. J'ai essayé de personnaliser maxStringContentLength valeur nommée WebHttpBinding mais pour quelque raison il n'a pas été ramassé par la WCF. enfin, j'ai suivi le D. Tiemstra contourner puis il a commencé à travailler.
MaxBufferSize = 2147483647, MaxBufferPoolSize = 524288, MaxReceivedMessageSize = 2147483647, ReaderQuotas = new XmlDictionaryReaderQuotas { MaxDepth = 32, MaxStringContentLength = 8192, MaxArrayLength = 16384, MaxBytesPerRead = 4096, MaxNameTableCharCount =1638 }
OriginalL'auteur Karthikeyan
Je voudrais utiliser ces valeurs pour le WCF de configuration (par programmation):
OriginalL'auteur DanielV