Шаблон REST WCF 4 и строки base64 - HTTP 400 - PullRequest
0 голосов
/ 08 июля 2011

Я пытаюсь отправить длинную (приблизительно 155000 символов) строку base64 в службу REST WCF, используя шаблон REST wcf 4, предоставляемый Microsoft. Всякий раз, когда я пытаюсь отправить XML с помощью метода post из клиентского приложения или скрипача, я получаю код состояния HTTP 400 в ответ на мой запрос. У меня есть соответствующие настройки web.config, собранные из различных сообщений в блоге и других сообщений stackoverflow.

   <bindings>
      <webHttpBinding>
        <binding name="httpBinding" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" transferMode="Streamed"  openTimeout="00:25:00" closeTimeout="00:25:00" sendTimeout="00:25:00" receiveTimeout="00:25:00">
          <readerQuotas maxDepth="64"
                 maxStringContentLength="2147483647"
                 maxArrayLength="2147483647"
                 maxBytesPerRead="2147483647"
                 maxNameTableCharCount="2147483647"/>
        </binding>
      </webHttpBinding>
    </bindings>  

что мне здесь не хватает? Все остальное прекрасно работает; Я отправляю запросы в формате text / xml в службу, а все остальное возвращает 200, если я не работаю со строкой base64. Я знаю, что есть миллион других сообщений о размере сообщения wcf, но я был бы признателен, если бы кто-нибудь взглянул на мою.

Вот ссылка на пример запроса. Я пытаюсь обработать службу wcf.

Буду признателен за любые мысли, которые могут возникнуть у любого.

1 Ответ

0 голосов
/ 08 июля 2011

Попробуйте включить трассировку на стороне сервера, чтобы увидеть, что заставляет сервер отклонять запрос.Также дважды проверьте, что:

  • Элемент <endpoint> для вашей службы имеет атрибут bindingConfiguration со значением "httpBinding"
  • Элемент <service> для вашей службы a name атрибут, который соответствует полностью определенному имени класса обслуживания (т. Е. С пространством имен, по существу, тем же значением, которое вы используете в файле .svc).
...