Повлияет ли максимальное ограничение свойства конфигурации MaxReceivedMessageSize в wcf на производительность службы? - PullRequest
6 голосов
/ 25 февраля 2010

Я получаю следующее исключение для связи для моей службы wcf, которая звонит в другую службу wcf: «Превышен максимальный размер квоты для входящих сообщений (65536). Чтобы увеличить квоту, используйте свойство MaxReceivedMessageSize для соответствующего элемента привязки».

Я решил эту проблему, увеличив размер, как показано ниже: maxReceivedMessageSize = "50000000"

Но здесь я хочу знать, есть ли какие-либо побочные эффекты увеличения размера сообщения до такого большого уровня.

Ответы [ 2 ]

5 голосов
/ 25 февраля 2010

Да, возможно. Причина, по которой WCF поддерживает этот предел на низком уровне (64 КБ) по умолчанию, заключается в следующем: представьте, что ваш сервер занят ответами на запросы, скажем, десятки или сотни, и все они требуют максимального размера сообщения.

Потенциально вашему серверу может потребоваться выделить десятки или сотни буферов сообщений одновременно - если у вас 100 пользователей и каждый запрашивает 64 КБ, это 6,4 МБайт - но если у вас 200 пользователей и каждый запрашивает 5 МБ - это гигабайт оперативной памяти на сервере - только для буферов сообщений, для одного сервиса.

Так что да - ограничение максимального размера сообщения имеет смысл, и это помогает управлять потреблением памяти вашего сервера (и, следовательно, производительностью). Если вы откроете его слишком широко, злоумышленник может просто предпринять такую ​​атаку - затопить ваш сервер поддельными запросами, каждый из которых выделяет столько памяти, сколько они могут получить, что в конечном итоге приводит к остановке сервера (подобные атаки типа «отказ в обслуживании» встречаются довольно часто). .

0 голосов
/ 25 февраля 2010

Вам необходимо увеличить квоту в соответствии с веб-сервисом. Один из побочных эффектов, который я могу вспомнить, если вы используете очень большие значения, заключается в том, что использование памяти увеличится, но вы можете безопасно увеличить его до подходящего значения без каких-либо побочных эффектов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...