错误:连接因错误“错误:服务器在关闭时返回错误:连接因错误而关闭”而断开连接。

cse*_*oft 4 blazor blazor-server-side

当我尝试发送超过 50KB 的图像时,我在 Blazor 服务器应用程序上收到以下错误消息

错误:连接因错误“错误:服务器在关闭时返回错误:连接因错误而关闭”而断开连接。

我正在使用富文本框,当我在其上粘贴超过 50KB 的图像时,出现此错误。错误发生在 Blazor.server.js 上。此问题必须与可以通过 Web 套接字发送的数据限制有关,但是即使我将此限制更新为更大的大小,我仍然看到此问题。

这是我修改了限制的启动文件代码。

 app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
                endpoints.MapBlazorHub(options =>
                {
                    **options.ApplicationMaxBufferSize = 10 * 1024 * 1024;
                    options.TransportMaxBufferSize = 10 * 1024 * 1024;**
                });
                endpoints.MapFallbackToPage("/_Host");
            });
Run Code Online (Sandbox Code Playgroud)

该错误发生在 blazer.server.js 上,并且每次发生时连接都会断开。有没有人在 Blazor 服务器上遇到过这个问题 在此处输入图片说明

cse*_*oft 6

我已经增加了 Singal R 的大小,现在解决了这个问题,但这不是一个合适的解决方案。

services.AddSignalR(e => {
                e.MaximumReceiveMessageSize = 102400000;
            });
Run Code Online (Sandbox Code Playgroud)

正确的解决方案是在客户端和服务器之间实现自己的集线器,并分块进行处理并将其粘在一起。

参考:https : //docs.microsoft.com/en-us/aspnet/core/signalr/streaming?view=aspnetcore-3.1

  • 它本身并不“糟糕”,但它并不能解决问题。这就像如果你的汽车漏气,所以你安装了一个更大的油箱,你可以开得更远,但仍然漏气。 (3认同)