Перенос большого объекта данных через клиент WCF на сервер WCF - PullRequest
0 голосов
/ 16 января 2012

Я пытаюсь передать большой объект данных из клиента WinForms через WCF.

Когда клиент пытается получить объект с сервера, передача завершается успешно; но когда клиент пытается отправить объект на сервер, я получаю сообщение об ошибке !!

Ошибка:

в System.ServiceModel.Channels.HttpChannelUtilities.ProcessGetResponseWebException (WebException webException, запрос HttpWebRequest, HttpAbortReason abortReason)
в System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply (TimeSpan тайм-аут) в System.ServiceModel.Channels.RequestChannel.Request (Сообщение сообщения, TimeSpan timeout) в System.ServiceModel.Channels.ClientReliableChannelBinder 1.RequestClientReliableChannelBinder 1.OnRequest (TRequestChannel канал, сообщение, время ожидания, время маскирования, режим маскирования)
в System.ServiceModel.Channels.ClientReliableChannelBinder 1.Request(Message message, TimeSpan timeout, MaskingMode maskingMode) at System.ServiceModel.Channels.ClientReliableChannelBinder 1.Request (Message сообщение, TimeSpan timeout) в System.ServiceModel.Security.SecuritySessionClientSettings`1.SecurityRequestSessionChannel.Request (Message сообщение, TimeSpan timeout) в System.ServiceModel.Dispatcher.RequestChannelBinder.Request (Message сообщение, TimeSpan timeout) в System.ServiceModel.Channels.ServiceChannel.Call (Строковое действие, Boolean oneway, операция ProxyOperationRuntime, Object [] ins, Object [] outs, TimeSpan timeout) в System.ServiceModel.Channels.ServiceChannelProxy.InvokeService (IMethodCallMessage methodCall, операция ProxyOperationRuntime) в System.ServiceModel.Channels.ServiceChannelProxy.Invoke (Шеззаде сообщение)

Я пытаюсь добавить атрибут поведения DataContractSerializer и установить для него максимальное значение. Передача работает только одним способом - с сервера на клиент! С другой стороны - от клиента к серверу это не работает!

Спасибо за вашу помощь.

Ответы [ 2 ]

2 голосов
/ 16 января 2012

Попробуйте добавить следующие параметры в ваш файл web.config (адаптируйте значение для вашего случая):

<behaviors>
    <serviceBehaviors>
        <behavior name="">
            <dataContractSerializer maxItemsInObjectGraph="6553600"/>
        </behavior>
    </serviceBehaviors>
</behaviors>

...    

<system.webServer>
    <security>
        <requestFiltering>
            <requestLimits maxAllowedContentLength="512000000" />
        </requestFiltering>
    </security>
</system.webServer>
1 голос
/ 16 января 2012

Существует несколько параметров, управляющих максимальным размером сообщения.

  • MaxBufferSize
  • MaxReceivedMessageSize
  • MaxStringContentLength

См .:http://geekswithblogs.net/niemguy/archive/2007/12/11/wcf-maxstringcontentlength-maxbuffersize-and-maxreceivedmessagesize.aspx

...