1

当我尝试从 Blazor 函数调用 JavaScript 函数时,我的服务器端 Blazor 应用程序和服务器之间的连接中断,当函数返回一个长度超过 32,721 个字符的字符串时。一世'

在我的 Razor 页面中,我执行:

var data = await JsRuntime.InvokeAsync<string>("myfunction");

JavaScript 函数myfunction如下所示:

function myfunction() {
  return 'x'.repeat(32721);
}

这可行,但是当我32722用作参数时,连接中断,我不知道为什么以及如何解决这个问题。

将字符串拆分为 1000 字节长的 chungs 并返回 string[] 效果不佳。

我需要返回大约 200.000 个字节。有什么限制吗?

观看 websocket 的消息,我可以看到 103kB 的消息,然后是“JS.RenderBatch”、“OnRenderCompleted”,最后是“连接因错误而关闭”,但我在任何控制台或日志中都找不到任何错误消息。

4

1 回答 1

1

这是 SignalR 消息大小限制。请参阅此 GitHub 问题MS 文档中也有关于分块响应以解决消息大小限制的内容。

于 2020-09-13T18:03:20.760 回答