Blazor(服务器端)TextArea 因较长的字符串而失败

Lar*_*tig 6 signalr blazor blazor-server-side

我正在为 ETL 编写 Blazor 服务器端应用程序。我有一个包含 8 个字段的表单,其中之一是使用<InputTextArea>. 该字段用于剪切和粘贴电子表格、CSV 文件、HTML 表格等中的数据内容。

OnValidSubmitfor<EditForm>连接到文件部分ProcessForm()中的函数。@code {}.razor

只要文本区域中的字符串少于 20,798 个字符,一切都可以正常工作。但是,当我将 20,798 个或更多字符粘贴到控件中时,提交会暂停(浏览器的内容被禁用),然后消息An error has occurred. This application may no longer respond until reloaded. Reload"将显示在视口的页脚中。我正在 VS Code 中进行开发,终端窗口(或任何其他控制台窗口)中没有显示任何内容,包括我的方法开头的日志记录语句ProcessForm()。但是,该消息Error: Connection disconnected with error 'Error: Server returned an error on close: Connection closed with an error.'确实出现在浏览器的 JS 控制台上。

我已经在底层 SignalR 技术中看到了对最大缓冲区长度的引用,但是我在旧帖子中看到的用于设置更大缓冲区的方法似乎都与.MapBlazorHub配置 Blazor 的新方法兼容(并且无论如何,我希望能够处理任意大量的数据)。

有谁知道在这种情况下如何增加或删除数据大小限制?

Isa*_*aac 8

我想这就是你所需要的。据我所知,32kb 是默认值。

services
    .AddServerSideBlazor()
    .AddHubOptions(options => { options.MaximumReceiveMessageSize = 32 * 1024; });
Run Code Online (Sandbox Code Playgroud)

  • 32768不是32字节 (3认同)