Blazor (на стороне сервера) TextArea не работает со строками Long-i sh - PullRequest
0 голосов
/ 01 февраля 2020

Я пишу серверное приложение Blazor для ETL. У меня есть форма с 8 полями, одним из которых является текстовое поле, созданное с помощью <InputTextArea>. Это поле используется для вырезания и вставки содержимого данных из электронных таблиц, файлов CSV, HTML таблиц и т. Д. c.

OnValidSubmit для <EditForm> подключено к * Функция 1006 * в разделе @code {} файла .razor.

Все работает нормально, если длина строки в текстовой области меньше 20 798 символов. Однако когда я вставляю 20 798 или более символов в элемент управления, при отправке возникает пауза (содержимое браузера отключается), а затем в нижнем колонтитуле области просмотра появляется сообщение An error has occurred. This application may no longer respond until reloaded. Reload". Я занимаюсь разработкой VS Code, и в окне терминала (или в любом другом окне консоли) ничего не появляется, включая инструкцию logging в самом начале моего ProcessForm() метода. Однако сообщение Error: Connection disconnected with error 'Error: Server returned an error on close: Connection closed with an error.' действительно появляется на консоли JS браузера.

Я видел ссылки на максимальную длину буфера в базовой технологии SignalR, но ни один из методов, которые я видел в более старых сообщениях для установки большего буфера, кажется, совместим с новым .MapBlazorHub методом настройки Blazor (и, в любом случае, я хотел бы иметь возможность обрабатывать произвольно большие объемы данных).

Кто-нибудь знает, как я могу увеличить или удалить ограничение размера данных в этом сценарии?

1 Ответ

1 голос
/ 01 февраля 2020

Я думаю, это то, что вам нужно. Насколько я помню, 32 КБ по умолчанию.

 services.AddServerSideBlazor().AddHubOptions(
                    options => { options.MaximumReceiveMessageSize = 32; });
...