установите максимальный размер сообщения в wcf

#wcf

#wcf

Вопрос:

Недавно мы разработали сервис на основе wcf. И начал предоставлять доступ к внешним клиентам. Но иногда они получают исключение максимального размера сообщения. Я знаю, что они могут установить в файле конфигурации, и это сработает. Но с нашей стороны это действительно выглядит плохо. Могу ли я каким-либо образом установить правильный размер на моей стороне и прекратить вызывать эту ошибку?

Ответ №1:

Его необходимо установить на клиенте, поскольку они получают большое сообщение.

Пример:

 <binding
   name="YourNameHere"
   maxReceivedMessageSize="2147483647">
</binding>
  

Комментарии:

1. Спасибо за ответ. Руководство не готово принять это решение. Есть ли какой-либо способ, которым я могу управлять со стороны сервера. И, честно говоря, никто в нашей компании не является экспертом в WCF. Итак, мне нужна помощь сообщества.

2. ха-ха … готово ли управление или нет, не имеет значения. Проблема (если я не ошибаюсь) заключается в том, что вы отправляете клиенту больше данных, чем клиент настроен на прием. Это проблема на стороне клиента, а не на стороне сервера. Даже если вы внесете изменение на своей стороне, это не окажет никакого эффекта на стороне клиента.

3. Я думаю, вам также важно понять, почему это is…it это функция безопасности, встроенная в WCF. Это свойство предназначено для ограничения подверженности вашей службы атакам типа «отказ в обслуживании» (DoS).

4. @BrandonZeider Ваши комментарии имеют смысл для меня. Но Mgmt трудно убедить. Итак, чтобы найти промежуточный путь, как мне узнать максимальный размер сообщения, предоставляемого моей службой? Чтобы я мог заранее сообщить клиентам, что это должно быть значение, которое они должны установить в конфигурации.

5. Итак, ваше руководство считает, что проблема с вашей стороны? Вот статья, в которой дается простой способ определения значения. Пожалуйста, имейте в виду, что это значение, вероятно, изменится в зависимости от того, какая операция вызывается, какие параметры передаются и т.д. craigrandall.net/archives/2009/04/maxreceivedmessagesize

Ответ №2:

Вам следует изучить возможности использования поведения WCF.

http://msdn.microsoft.com/en-us/magazine/cc163302.aspx