C # WCF: служба WCF, возвращающая (404) неверный запрос при отправке массива элементов - PullRequest
3 голосов
/ 11 апреля 2009

Я пытаюсь отправить массив из 50 элементов в метод службы WCF, но всегда получаю ошибку (404) Bad Request.

Я думаю, что это связано с размером сообщения или чем-то подобным, потому что, если я отправляю пустой массив, это работает.

Я провел некоторое исследование и добавил кое-что в web.config WCF, но мне все еще не удается заставить это работать.

Может ли кто-нибудь предоставить дополнительную информацию о том, как я могу увеличить размер сообщения, которое я могу отправить ?


[ОБНОВЛЕНИЕ] Решение:

Решение

Ответы [ 3 ]

2 голосов
/ 11 апреля 2009

Глупый, тупой я: (

Дело в том, что я создавал конфигурацию привязки в web.config примерно так:

<bindings>
    <wsHttpBinding>
        <binding name="netTcpBindingConfig" closeTimeout="00:10:00" openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00" transactionFlow="false" hostNameComparisonMode="StrongWildcard"  maxBufferPoolSize="524288" maxReceivedMessageSize="6000000">
            <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="6000000" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
        </binding>
    </wsHttpBinding>
</bindings>

Но тогда я не применял конфигурацию к конечной точке! Итак, мне пришлось добавить это к тегу конечной точки:

bindingConfiguration="netTcpBindingConfig"

Теперь это работает как шарм.

0 голосов
/ 11 апреля 2009

Ваш хост службы должен быть настроен на получение большого набора данных, в противном случае он либо отбрасывается на уровне сервиса.

  • Добавить ссылку на System.Runtime.Serialization.
  • При создании привязки установить размер сообщения:

    
    return new NetTcpBinding(SecurityMode.None, true)  
    {  
        MaxReceivedMessageSize = 99999999,  
        ReaderQuotas = { MaxArrayLength = 99999999 }  
    };
    
    
0 голосов
/ 11 апреля 2009

Это очевидно, но вы пробовали установить MaxReceivedMessageSize на 65536 и посмотреть, все ли не получится?

...