maxReceivedMessageSize nicht behoben 413: Request Entity Too Large

Mein Anruf bei meinem WCF-Webdienst schlägt fehlSystem.Net.WebException: The request failed with HTTP status 413: Request Entity Too Large.

Wenn ich Fiddler überprüfe, sehe ich, dass ich sende:

Inhaltslänge: 149839

Welches ist über 65KB.

Wenn Sie die WCF-Ablaufverfolgung auf dem Server aktivieren, wird Folgendes angezeigt:

System.ServiceModel.ProtocolException: Das maximale Nachrichtengrößenkontingent für eingehende Nachrichten (65536) wurde überschritten. Verwenden Sie zum Erhöhen des Kontingents die MaxReceivedMessageSize-Eigenschaft für das entsprechende Bindungselement.

Das Hinzufügen dieser Eigenschaft löst das Problem nicht.

Ich habe es mit genau dieser Eigenschaft versucht und (später) mit verschiedenen anderen, die Beiträge vorgeschlagen haben. Folgendes habe ich derzeit(auf dem Server):

<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>

Mein einziger Endpunkt (unter<client>) ist:

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

Ich habe auch hinzugefügt:

<dataContractSerializer maxItemsInObjectGraph="2147483647"/>

unter<behavior>.

Ich habe sogar ausgeführt (für IIS 7):

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

Nichts macht einen Unterschied.

Ein Haken ist, dass dies ein WCF-Dienst ist, der einen älteren ASMX-Dienst ersetzen soll. Das Dienstskelett wurde mit svcutil aus der vorhandenen WSDL generiert. Ich kann die Client-Konfigurationen nicht ändern (und die Kunden sind in mehreren Sprachen). Mein Testclient - Projekt importierte den Dienst mit Webverweis hinzufügen (unterAdd Service Reference / Advanced), also ich habe keine WCF Konfiguration. Der Testclient funktioniert jedoch, wenn ich ihn auf den älteren ASMX-Dienst verweise.

Wie kann ich das beheben oder diagnostizieren?

zusätzliche Information

Wenn ich den Microsoft Service Configuration Editor verwende, um die Konfiguration zu generieren (Einstellung von maxReceivedMessageSize und maxBufferSize), funktioniert es. Das Problem ist, dass der Endpunkt dann unter angegeben wird<service>und ich kann die relative Adresse /NetPricingService/Service.asmx nicht angeben. Wenn ich die Bindungen in der von svcutil generierten Konfiguration bearbeite (wo sich der Endpunkt befindet)<client>) funktioniert es nicht mit großen Anfragen.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage