asp.net Blazor服务器在长时间不活动后出现应用程序刷新问题

xpcnnkqh  于 12个月前  发布在  .NET
关注(0)|答案(1)|浏览(125)

我有这样的问题.使用此链接https://learn.microsoft.com/en-us/aspnet/core/blazor/fundamentals/signalr?view=aspnetcore-6.0我想设置一个自定义过程重新连接到Blazor服务器.我使用.Net版本6.0.虽然在版本7.0我看到有一个官方脚本修改“boot.js”,在版本6.0有较少的选项(我想?)。我的意思是,我注意到如果Chrome标签页至少3分钟不使用,断开应用程序的问题。好的,这可以通过关闭“节能”绕过,但我在移动的设备上没有找到这个选项。
我在堆栈上找到了一个解决方案,但它只隐藏了有关重试连接的信息的窗口,您必须单击控件2或3次才能刷新连接。解决方案链接:How to disable "Attempting to reconnect to the server" message on ASP.NET Core producton server
我担心尝试迁移到7.0版本会导致应用程序崩溃。我甚至不知道是否可以迁移?

5gfr0r5j

5gfr0r5j1#

如果你想迁移到一个新版本的.NET,Visual Studio现在附带了一个升级助手,它可能对你有用。右键单击解决方案->升级。
然而,这应该是可行的:

builder.Services.AddServerSideBlazor(options =>
{
    options.DisconnectedCircuitRetentionPeriod = TimeSpan.FromMinutes(10);
}

字符串
根据需要更改时间跨度,基本上这将在服务器上缓存连接,如果客户端在给定的时间跨度内返回,连接仍然是活动的。
也没有尝试过这个,但我看到它使用之前

builder.Services.AddSignalR(options =>
{
    options.KeepAliveInterval = TimeSpan.FromSeconds(15);
});


它每15秒从服务器发送一个ping来保持连接,不知道它有多有效,可能需要更多的研究。

相关问题