我的blazor应用程序似乎可以工作,但我试图理解为什么我会出现屏幕截图中的400错误。
谁能告诉我Blazor在技术上需要什么——"断开连接"?
SCRENSHOT断开
我正在NGINX网络服务器上运行所有内容。
thx Fabio
此处报告了一个关于此问题的错误: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);
该调用发生在窗口卸载事件的代码中,用于告诉信号服务器您正在断开连接。
如果你看到了很多这样的情况,那可能是你的代理没有为websocket连接正确配置。
window.addEventListener(
'unload',
() => {
const data = new FormData();
const circuitId = circuit.circuitId!;
data.append('circuitId', circuitId);
navigator.sendBeacon('_blazor/disconnect', data);
},
false
);