WCF maxReceivedMessageSize de ne pas être lu à partir de config
J'ai un serveur suivants côté de l'app.config pour un service WCF:
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="default" maxReceivedMessageSize="5000000">
<readerQuotas maxStringContentLength="5000000" maxArrayLength="5000000" />
</binding>
</wsHttpBinding>
</bindings>
<services>
<service behaviorConfiguration="Core.TOAService.Service1Behavior"
name="Core.TOAService.TOAService">
<endpoint address="" binding="wsHttpBinding" contract="Core.TOAService.ITOAService">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:8732/Design_Time_Addresses/Core.TOAService/TOAService/" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="Core.TOAService.Service1Behavior">
<!-- To avoid disclosing metadata information,
set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="True"/>
<!-- To receive exception details in faults for debugging purposes,
set the value below to true. Set to false before deployment
to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
Quand j'ai essayer de passer ce service un largish fichier (seulement ~250KB), j'obtiens une exception enregistré dans le svclog fichier:
La taille de message maximale de quotas pour
les messages entrants (65536) a été
dépassée. Pour augmenter le quota, l'utilisation
le MaxReceivedMessageSize bien sur
la liaison appropriée de l'élément.
Comme vous pouvez le voir à partir de la liaison de la section en haut de la config, j'ai essayé de définir le maxReceivedMessageSize à 5000000 mais le service pense toujours que c'est la valeur par défaut de 65536. Toutes les idées sur ce qui est mal ou ce qui est "approprié" élément de liaison?
OriginalL'auteur Colin Desmond | 2009-08-27
Vous devez vous connecter pour publier un commentaire.
Il y a plus de paramètres 🙂 Essayez "maxBufferPoolSize" et "maxBufferSize" sur le
<binding>
tag.Mais le plus gros problème est: votre point de terminaison ne pas de référence que la configuration de liaison!
Vous devez ajouter une référence à ce dernier afin qu'il soit utile - tout le qualifiant de "par défaut" ne fonctionne pas.....
Vous êtes en avance sur votre temps 😉 Dans WCF 4 (avec .NET 4.0 - plus tard cette année 2009), vous serez en mesure de définir par défaut "configurations de liaison" sans avoir explicitement le nom et la référence à eux - mais pour l'instant, vous devez créer un lien entre votre point de terminaison et de sa liaison et de toute liaison (ou le comportement) de la configuration que vous avez!
Marc
Il n'est jamais tout à fait clair si et lequel des trois amortir les changements sont vraiment besoin d'aide pour essayer, et voir. Il n'y a vraiment rien de bon, une documentation complète et une explication quant à la manière d'ajuster ces paramètres, malheureusement....
Doh, les serveurs m'droit pour l'utilisation de VS2010 pour construire un 3.5 service! Grand merci, c'est corrigé.
+1 réponse Parfaite.
OriginalL'auteur marc_s
Si vous êtes toujours obtenir ce message d'erreur lors de l'utilisation du Client Test WCF, c'est parce que le client dispose d'un MaxBufferSize réglage.
Pour corriger le problème:
Une liste de paramètres modifiables apparaissent, y compris MaxBufferSize.
Remarque: Auto-proxy généré clients également définir MaxBufferSize à 65536 par défaut.
OriginalL'auteur Michael Rodrigues
Il ya plusieurs endroits que vous devez définir la taille. Dans votre cas, je pense que vous avez besoin pour ajouter de lire des quotas. Voici un exemple:
OriginalL'auteur Shiraz Bhaiji