Если вы хотите отправить файл размером 1 МБ на сервер, значение maxReceivedMessageSize
на сервере должно быть не менее 1 МБ (независимо от того, рассчитываете ли вы его как 1 миллион байт или 10 до степени 20 =) 1'048'576).
Причина, по которой WCF поддерживает эти значения по умолчанию на низком уровне, заключается в защите вашего сервера от атаки типа "отказ в обслуживании". Если вы разрешите на своем сервере до 1 МБ или 2 МБ maxReceivedMessageSize
, злоумышленник может попытаться заполнить ваш сервер строкой запросов, максимально увеличивающих этот размер, и, таким образом, в конечном итоге привести к нехватке памяти на вашем сервере.
В WCF есть ряд мер безопасности, например ограничение максимального числа одновременных подключений и т. Д., Которые все вступают в действие в таком сценарии. Таким образом, превышение этого предела открывает дверь в сарай чуть-чуть для плохих парней - если вы благополучно находитесь за корпоративным брандмауэром, это не может быть проблемой, на самом деле. Если ваш сервер недоступен из-за сильного ветра в Интернете, это может быть риском для вас.