maxReceivedMessageSize nie naprawia 413: Request Entity Too Large

Moje wywołanie do mojej usługi WWW WCF nie działaSystem.Net.WebException: The request failed with HTTP status 413: Request Entity Too Large.

Sprawdzam Skrzypka, widzę, że wysyłam:

Długość treści: 149839

Który jest ponad 65 KB.

Włączając śledzenie WCF na serwerze, widzę:

System.ServiceModel.ProtocolException: Przekroczono maksymalny limit rozmiaru wiadomości przychodzących (65536). Aby zwiększyć przydział, użyj właściwości MaxReceivedMessageSize na odpowiednim elemencie wiążącym.

Dodanie tej właściwości nie rozwiązuje problemu.

Próbowałem tylko z tą właściwością i (później) z różnymi innymi, które sugerowały posty. Oto, co mam obecnie(na serwerze):

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

Mój jedyny punkt końcowy (pod<client>) jest:

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

Dodałem również:

<dataContractSerializer maxItemsInObjectGraph="2147483647"/>

pod<behavior>.

Uruchomiłem nawet (dla IIS 7):

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

Nic nie robi żadnej różnicy.

Jednym z problemów jest to, że jest to usługa WCF mająca zastąpić starszą usługę ASMX. Szkielet usługi został wygenerowany za pomocą svcutil z istniejącego WSDL. Nie mogę zmienić konfiguracji klienta (a klienci są w wielu językach). Mój projekt klienta testowego zaimportował usługę za pomocą polecenia Dodaj odwołanie do sieci Web (podAdd Service Reference / Advanced), więc nie mam konfiguracji WCF. Jednak klient testowy działa, gdy wskazuję go na starszą usługę ASMX.

Jak mogę to naprawić lub zdiagnozować?

dodatkowe informacje

Jeśli używam edytora konfiguracji usługi Microsoft do wygenerowania konfiguracji (ustawienie maxReceivedMessageSize i maxBufferSize), działa. Problem polega na tym, że punkt końcowy jest wtedy określany w<service>i nie pozwoli mi określić adresu względnego /NetPricingService/Service.asmx. Jeśli edytuję powiązania w konfiguracji wygenerowanej przez svcutil (gdzie punkt końcowy jest pod<client>), nie działa z dużymi żądaniami.

questionAnswers(4)

yourAnswerToTheQuestion