WCF maxReceivedMessageSize не работает - PullRequest
0 голосов
/ 05 августа 2010

У меня есть служба WCF, которая имеет эти параметры конфигурации.Когда я вызываю его из клиентского приложения, я все равно поражаюсь: «Максимальное количество элементов, которые можно сериализовать или десериализовать в графе объектов, равно« 65536 »». Что не так с моей конфигурацией ниже?

<system.serviceModel>
  <bindings>
   <wsHttpBinding>
    <binding name="LargeBuffer" maxReceivedMessageSize="2147483647" maxBufferPoolSize="2147483647">
     <readerQuotas maxDepth="2147483647" maxArrayLength="2147483647" maxStringContentLength="2147483647" 
          maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647"/>
    </binding>
   </wsHttpBinding>
  </bindings>
  <services>
   <service behaviorConfiguration="ServiceBehavior" name="TestWcfService.Service1">
    <endpoint address="" binding="wsHttpBinding" bindingConfiguration="LargeBuffer" name="ServiceEndPoint"
      contract="TestWcfService.IService1">
      <identity>
       <dns value="localhost" />
      </identity>
    </endpoint>
   </service>
  </services>
  <behaviors>
   <serviceBehaviors>
    <behavior name="ServiceBehavior">
     <serviceMetadata httpGetEnabled="true" />
     <dataContractSerializer maxItemsInObjectGraph="2147483647" />
     <serviceDebug includeExceptionDetailInFaults="true" />
    </behavior>
   </serviceBehaviors>
  </behaviors>
 </system.serviceModel>

Ответы [ 2 ]

1 голос
/ 05 августа 2010

Да, я увеличил его на стороне клиента, чтобы соответствовать.И это все еще достигает этого предела.Меня беспокоит то, что когда он возвращает ссылку на сервис, он все равно видит 65536 в качестве размера по умолчанию, поэтому он никогда не распознает большее количество.Какие-нибудь мысли?

0 голосов
/ 05 августа 2010

Вот мой код на стороне клиента:

<system.serviceModel>
        <bindings>
            <wsHttpBinding>
                <binding name="ServiceEndPoint" closeTimeout="00:01:00" openTimeout="00:01:00"
                    receiveTimeout="00:10:00" sendTimeout="00:01:00" bypassProxyOnLocal="false"
                    transactionFlow="false" hostNameComparisonMode="StrongWildcard"
                    maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647"
                    messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
                    allowCookies="false">
                    <readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="2147483647"
                        maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
                    <reliableSession ordered="true" inactivityTimeout="00:10:00"
                        enabled="false" />
                    <security mode="Message">
                        <transport clientCredentialType="Windows" proxyCredentialType="None"
                            realm=""/>
                        <message clientCredentialType="Windows" negotiateServiceCredential="true"
                            algorithmSuite="Default" establishSecurityContext="true" />
                    </security>
                </binding>
            </wsHttpBinding>
        </bindings>
        <client>
            <endpoint address="http://localhost:61423/Service1.svc" binding="wsHttpBinding"
                bindingConfiguration="ServiceEndPoint" contract="LucasImport.IService1"
                name="ServiceEndPoint">
                <identity>
                    <dns value="localhost" />
                </identity>
            </endpoint>
        </client>
    </system.serviceModel>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...