maxReceivedMessageSize pas de fixation 413: Entité de Demande Trop Grande

Mon appel à mon service web WCF est un échec avec System.Net.WebException: The request failed with HTTP status 413: Request Entity Too Large.

Vérification de la Fiddler, je vois que je suis d'envoi:

Content-Length: 149839

Qui est plus 65KB.

Permettant WCF suivi sur le serveur, je vois:

Système.ServiceModel.ProtocolException: La taille maximale de message quota
pour les messages entrants (65536) a été dépassé. Pour augmenter la
quota, utilisez le MaxReceivedMessageSize de propriété sur le
élément de liaison.

L'ajout de cette propriété n'a pas de résoudre le problème.

J'ai essayé avec juste cette propriété, et (plus tard) avec divers autres que les messages que l'ont suggéré. Voici ce que j'ai actuellement (sur le serveur):

<basicHttpBinding>

  <binding name="PricerServiceSoap"
    closeTimeout="00:10:00" openTimeout="00:10:00"
    receiveTimeout="00:10:00" sendTimeout="00:10:00"
    maxBufferSize="2147483647"    
    maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647">

    <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
      maxArrayLength="2147483647" maxBytesPerRead="2147483647"
      maxNameTableCharCount="2147483647" />
  </binding>

</basicHttpBinding>

Mon seul point de terminaison (sous <client>) est:

<endpoint address="/NetPricingService/Service.asmx"
  binding="basicHttpBinding" bindingConfiguration="PricerServiceSoap"
  contract="Pricing.PricerService.PricerServiceSoap"
  name="PricerServiceSoap" />

J'ai également ajouté:

<dataContractSerializer maxItemsInObjectGraph="2147483647"/>

sous <behavior>.

J'ai même courir (pour IIS 7):

%windir%\system32\inetsrv\appcmd set config "WebServicesDev/PricingService"
-section:requestFiltering -requestLimits.maxAllowedContentLength:104857600
-commitpath:apphost

Rien ne fait aucune différence.

Un hic, c'est que c'est un service WCF est destiné à remplacer une ancienne ASMX service. Le service squelette a été générée avec svcutil à partir de WSDL existant. Je ne peux pas changer les configurations du client (et les clients en plusieurs langues). Mon client de test du projet importé le service à Ajouter une Référence Web (sous Add Service Reference /Advanced), donc je n'ai aucune configuration WCF. Toutefois, le client de test fonctionne si je point à l'ancienne ASMX service.

Comment puis-je réparer ou diagnostiquer cette?

Informations supplémentaires

Si j'utilise le Service Microsoft l'Éditeur de Configuration pour générer le fichier de configuration (paramètre maxReceivedMessageSize et maxBufferSize), il fonctionne. Le problème est que le point de terminaison est ensuite spécifiée en vertu de l' <service>, et il ne me permet pas de spécifier la /NetPricingService/Service.asmx adresse relative. Si je modifier les liaisons dans le svcutil généré config (où le point de terminaison est sous <client>), il ne fonctionne pas avec de grandes demandes.

InformationsquelleAutor TrueWill | 2013-01-31