Я использую Безопасность сообщений и тип учетных данных Windows.Я не использую потоковую передачу и Mtom по какой-то причине прямо сейчас, но мог бы рассмотреть в будущем.До сих пор в сервисной документации WCF указано, что вы можете передавать максимум до 2 ГБ данных.Я думаю, что если я смогу передать 20-40 МБ данных в соответствии со спецификацией WCF, это будет работать для меня сейчас, хотя сейчас это плохо.
Я могу передавать данные до 10 МБ из службы WCF в клиентно когда я пытаюсь увеличить размер более 10 МБ, что-то останавливает передачу данных с сервера на клиент, и я не знаю, что.
Я передаю коллекцию объектов из веб-службы в клиент.Когда данные не передаются с сервера на клиент, я не получаю сообщений об ошибках, это очень странно.Когда я устанавливаю размеры переноса ниже 10 МБ в свойствах привязки клиента и сервера, я могу передавать коллекцию из 1650 объектов, но когда это около 1900, я ничего не получаю на клиенте ????ПОЧЕМУ ????
Просто чтобы заставить его работать, я установил для свойства require все max, и он все еще не работает.Ниже приведено то, что у меня есть в клиенте:
<ws2007HttpBinding>
<binding name="CustomizeWs2007HttpBinding" sendTimeout="00:10:00" closeTimeout="00:10:00"
openTimeout="00:10:00" messageEncoding="Text" receiveTimeout="00:10:00"
maxBufferPoolSize="0"
maxReceivedMessageSize="2147483647"
>
<readerQuotas maxStringContentLength="2147483647" maxArrayLength="2147483647"
maxBytesPerRead="4096" />
<security mode="Message">
<message clientCredentialType="Windows" negotiateServiceCredential="true" establishSecurityContext="true"/>
</security>
</binding></ws2007HttpBinding>
Ниже приведено то, что у меня есть в службе WCF (сервер):
<ws2007HttpBinding>
<binding name="KerberosBinding" maxBufferPoolSize="0" maxReceivedMessageSize="2147483647"
messageEncoding="Text" sendTimeout="00:10:00" closeTimeout="00:10:00"
openTimeout="00:10:00">
<readerQuotas maxStringContentLength="2147483647" maxArrayLength="2147483647"
maxBytesPerRead="4096" />
<security>
<message negotiateServiceCredential="true" establishSecurityContext="true"/>
</security>
</binding></ws2007HttpBinding>
Я надеюсь, что у кого-то есть ответ.Заранее большое спасибо.
Спасибо, Крис, сейчас все работает, и спасибо всем за ответ.Я являюсь новым участником этого сайта, поэтому не знаю, где разместить свое окончательное решение, в любом случае оно вставлено ниже:
15728640 = 15 МБ
10485760 = 10 МБ, хотя его размер слишком велик
Конфигурация клиента:
<behaviors>
<endpointBehaviors>
<behavior name="PServiceBehavior">
<dataContractSerializer maxItemsInObjectGraph="10485760"/>
</behavior>
</endpointBehaviors>
</behaviors>
и ссылка на него с конечной точки:
<endpoint address="http://localhost:53054/pservicehost/pservice.svc"
binding = "ws2007HttpBinding" bindingConfiguration = "PServiceWs2007HttpBinding" поведениеConfiguration = "PServiceBehavior" contract = "PWebServiceContract.IPService" name = "PServiceWs2007HttpBindingEndPoint">
* * * 10 * 10 * 10 * и 10 * 10 * ссылкаэто из сервиса:
<services>
<service behaviorConfiguration="PServiceHost.PServiceBehavior" name="PWebService.PService">
<endpoint address="" binding="ws2007HttpBinding" bindingConfiguration="KerberosBinding" contract="PWebServiceContract.IPService">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>