WCF загружает большие изображения как wsHttpBinding - PullRequest
0 голосов
/ 02 августа 2011

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

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

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

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

Извинения, если на эти вопросы есть ответ на вопрос - я обнаружил переполнение стекаи попробовал несколько предложений, но возможно, я пропустил это!

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

1 Ответ

2 голосов
/ 02 августа 2011

вам нужно обновить привязки в вашем 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>
...