【问题标题】:Blazor (Server Side) TextArea Fails With Long-ish StringsBlazor(服务器端)TextArea 因字符串过长而失败
【发布时间】:2020-05-17 14:53:50
【问题描述】:

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

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

只要文本区域中的字符串少于 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 技术中看到了对最大缓冲区长度的引用,但我在旧帖子中看到的用于设置更大缓冲区的方法都没有与配置 Blazor 的新 .MapBlazorHub 方法兼容(无论如何,我希望能够处理任意大量的数据)。

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

【问题讨论】:

    标签: signalr blazor blazor-server-side


    【解决方案1】:

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

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

    【讨论】:

    • 32768 不是 32 字节
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-06
    • 1970-01-01
    • 1970-01-01
    • 2012-10-12
    • 2015-03-17
    • 1970-01-01
    • 2014-01-31
    相关资源
    最近更新 更多