【问题标题】:Has JsRuntime.InvokeAsync a return value size limitation?JsRuntime.InvokeAsync 有返回值大小限制吗?
【发布时间】:2020-09-14 02:03:20
【问题描述】:

当我尝试从 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”,最后是“连接因错误而关闭”,但我在任何控制台或日志中都找不到任何错误消息。

【问题讨论】:

标签: blazor blazor-jsinterop


【解决方案1】:

这是 SignalR 消息大小限制。见this GitHub issue。还有this from the MS docs 将响应分块以解决消息大小限制。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-01
    相关资源
    最近更新 更多