Blazor 应用程序 /_blazor/disconnect 状态码 400

Posted

技术标签:

【中文标题】Blazor 应用程序 /_blazor/disconnect 状态码 400【英文标题】:Blazor Application /_blazor/disconnect statuscode 400 【发布时间】:2020-06-20 13:22:37 【问题描述】:

我的 blazor 应用程序似乎可以运行,但我试图理解为什么我会收到 400 错误,如屏幕截图所示。

谁能给我一个提示,告诉我 Blazor 在技术上需要什么“断开连接”?

SCREENSHOT-disconnect

我在 nginx 网络服务器上运行一切。

感谢法比奥

【问题讨论】:

欢迎来到 SO!请查看***.com/help/how-to-ask 以了解如何编写简洁明了的问题。您可能应该提供一些代码示例来说明您正在做什么。 【参考方案1】:

该调用发生在窗口卸载事件的代码中,用于告诉信号器服务器您正在断开连接。

如果您看到很多这样的情况,则可能是您的代理未正确配置 websocket 连接。

window.addEventListener(
    'unload',
    () => 
      const data = new FormData();
      const circuitId = circuit.circuitId!;
      data.append('circuitId', circuitId);
      navigator.sendBeacon('_blazor/disconnect', data);
    ,
    false
  );

【讨论】:

【参考方案2】:

这里报告了此问题的错误: https://github.com/dotnet/aspnetcore/issues/30316

Blazor.server.js 不尊重 configureSignalR 构建器定义 断开连接的 url/路径

作为一种解决方法,我在Configure 方法中将此添加到Startup.cs

var rewriteOptions = new RewriteOptions();
rewriteOptions.AddRewrite("_blazor/disconnect", "/_blazor/disconnect", skipRemainingRules: true);
app.UseRewriter(rewriteOptions);

【讨论】:

以上是关于Blazor 应用程序 /_blazor/disconnect 状态码 400的主要内容,如果未能解决你的问题,请参考以下文章

Azure 静态 Web 应用 Blazor WASM .Net Core API 和标识 - 无法从“_configuration”加载设置

为啥 Blazor 使用 post 而不是 WebSockets?

带有 Blazor InputFile 组件的“无法读取属性 '_blazorFilesById' 的空错误”

身份剃须刀页面中的 Blazor 组件

反向代理 404 后面的 Blazor 服务器端

Blazor University (38)JavaScript 互操作 —— 从 .NET 调用 JavaScript