Ищем оптимальные настройки квоты WCF - PullRequest
2 голосов
/ 04 апреля 2011

Я знаю, мой вопрос довольно слабый, но что бы вы сказали, «оптимальные» настройки для квот WCF, например, MaxReceivedMessageSize и т. Д .?

Мой сервис в основном возвращает небольшие значения, но иногда возвращаемые значения превышают квоты по умолчанию. Есть еще большие возвращаемые значения, которые я возвращаю как потоки во второй конечной точке.

Теперь значение по умолчанию для MaxReceivedMessageSize (без сомнения, потоковая конечная точка использует более высокие значения; мой вопрос касается буферизованной связи) - 65536 байт, я думаю, довольно мало. Существует множество «учебных пособий», в которых для этого значения просто устанавливается значение Int32.MaxValue, что вовсе не является хорошей идеей;) Ну, что же вы думаете? Какие значения жизнеспособны, но также достаточно безопасны, чтобы не сделать ваш сервис уязвимым для DoS и других вещей?

Привет

1 Ответ

0 голосов
/ 05 апреля 2011

Значение Vialbe действительно зависит от размера данных, которые вы ожидаете.Если вы знаете, что иногда вы можете получить до 256 КБ, установите значение 256 КБ.В случае внутреннего обслуживания предел, вероятно, может быть установлен на Int32.MaxValue, но я думаю, что это гораздо больше о ленивости делать предположения о передаваемых данных.Для общедоступного веб-сервиса вы вряд ли установите значение Int32.MaxValue, потому что кто-нибудь сможет взорвать ваш сервер.

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

Отдельная конечная точка - это отдельная конфигурация как на стороне клиента, так и на стороне сервера..

...