我正在为ETL编写Blazor服务器端应用程序。我有一个包含8个字段的表单,其中一个是使用<InputTextArea>
创建的文本区域。此字段用于剪切和粘贴电子表格,CSV文件,HTML表格等中的数据内容。
将OnValidSubmit
的{{1}}连接到<EditForm>
文件的ProcessForm()
部分中的@code {}
函数。
只要textarea中的字符串少于20,798个字符,一切都可以正常工作。但是,当我将20798个或更多的字符粘贴到控件中时,提交会暂停(浏览器的内容被禁用),然后消息.razor
会出现在视口的页脚中。我正在使用VS Code开发,并且终端窗口(或任何其他控制台窗口)中没有任何显示,包括An error has occurred. This application may no longer respond until reloaded. Reload"
方法开始处的日志记录语句。但是,消息ProcessForm()
确实出现在浏览器的JS控制台上。
我已经看到了有关底层SignalR技术中最大缓冲区长度的参考,但是我在较早的文章中看到的用于设置较大缓冲区的方法都没有与配置Blazor的新Error: Connection disconnected with error 'Error: Server returned an error on close: Connection closed with an error.'
方法兼容(并且,无论如何,我希望能够处理任意数量的数据。
有人知道在这种情况下如何增加或删除数据大小限制吗?
答案 0 :(得分:2)
我想这就是您所需要的。据我所知,默认值为32kb。
services.AddServerSideBlazor().AddHubOptions(
options => { options.MaximumReceiveMessageSize = 32; });