#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.