Я изучал это некоторое время назад, потому что я хотел создать пользовательскую кнопку, которая откроет диалоговое окно файла и сразу начнет загрузку. Я просто заметил что-то, что могло бы сделать это возможным - firefox, кажется, открывает диалог, когда вы нажимаете в любом месте загрузки. Таким образом, это может сделать следующее:
Это теоретически, поскольку я уже использовал другой метод для решения проблемы, но это может сработать.
Для увеличения квот на размер сообщений вам понадобится что-то подобное в файле App.config или Web.config :
<bindings>
<basicHttpBinding>
<binding name="basicHttp" allowCookies="true"
maxReceivedMessageSize="20000000"
maxBufferSize="20000000"
maxBufferPoolSize="20000000">
<readerQuotas maxDepth="32"
maxArrayLength="200000000"
maxStringContentLength="200000000"/>
</binding>
</basicHttpBinding>
</bindings>
И используйте имя привязки в вашей конфигурации конечной точки, например
...
bindingConfiguration="basicHttp"
...
. Обоснование значений простое, они достаточно велики, чтобы вместить большинство сообщений. Вы можете настроить это число в соответствии со своими потребностями. Низкое значение по умолчанию в основном используется для предотвращения атак типа DOS. Если установить значение 20000000, то распределенная атака DOS будет эффективной, размер по умолчанию в 64К потребует очень большого количества клиентов, чтобы подавить большинство серверов в наши дни.
Если вы по-прежнему получаете это сообщение об ошибке при использовании тестового клиента WCF, это потому, что у клиента есть отдельный параметр MaxBufferSize .
Чтобы исправить проблему:
Появится список редактируемых настроек, включая MaxBufferSize.
Примечание. Автоматически созданные клиенты прокси также устанавливают для MaxBufferSize значение 65536 по умолчанию.