WCF загружает большие изображения как wsHttpBinding

Я создал службу WCF для загрузки изображений. Он отлично работает с изображениями <50 КБ или около того, но я получаю «Удаленный сервер возвратил ошибку: (400) Плохой запрос». с большими изображениями. Я давно искал и пробовал много разных вещей, включая установку maxRequestLength и несколько других настроек.

На стороне клиента web.config принимает его как basicHttpBinding, а я после wsHttpBinding (для более современного набора функций). Если я вручную изменю тип привязки на wsHttpBinding и изменю соответствующие параметры, я получу ошибку Unsupported Media Type. При просмотре тестового клиента WCF служба также отображается как привязка basicHttpBinding.

Так что у меня действительно двоякий вопрос.

  1. Что мне нужно сделать, чтобы моя служба могла обрабатывать файлы размером более 50 КБ?
  2. Что мне нужно изменить, чтобы моя служба распознавалась как wsHttp вместо basicHttp?

Приносим извинения, если есть вопрос, отвечающий на них - я просмотрел stackoverflow и попробовал несколько предложений, но, возможно, я его пропустил!

РЕДАКТИРОВАТЬ: Как всегда, мне удалось решить проблему wsHttpBinding, возясь с сервисом web.config и вручную изменив конечную точку на wsHttpBinding. Тем не менее, проблема с большим размером файла загрузки все еще возникает.


person m4rc    schedule 02.08.2011    source источник


Ответы (1)


вам нужно будет обновить свои привязки в файле web.config

например вот как я поступал в моей успокаивающей службе wcf. Я считаю, что и в вашем случае это будет очень похоже

    <bindings>
          <webHttpBinding>
              <!-- buffer: 64KB; max size: 64MB -->
              <binding name="StreamedBinding" closeTimeout="00:01:00" openTimeout="00:01:00" 
                       receiveTimeout="00:10:00" sendTimeout="00:01:00" transferMode="Streamed" 
                       maxBufferPoolSize="67108864" maxBufferSize="65536" maxReceivedMessageSize="67108864">
              </binding>
          </webHttpBinding>
</bindings>

<service name="WCFRestFul.ApiRestful">
        <endpoint address="" binding="webHttpBinding"
                  bindingConfiguration="StreamedBinding" bindingName="StreamedBinding" 
                  contract="WCFRestFul.IApiRestful" behaviorConfiguration="web" />
 </service>
person D.J    schedule 02.08.2011
comment
После долгих экспериментов наконец получил! - person m4rc; 04.08.2011