我制作了一个Blazor应用程序,它在本地运行良好。当我把它放在服务器上时,经常(当应用程序使用DB上下文时(我会得到这样的错误:
Error: Connection disconnected with error 'Error: WebSocket closed with status code: 1006 ()
用户必须刷新页面,这真的很烦人。你不能以这种方式使用应用程序。
我发现了很多关于这个错误的讨论,很多计划。。。而且几乎所有的东西都超过一年。我希望已经有了解决方案,但还没有找到任何东西。
任何人都知道,为什么会发生这种情况,以及如何在Blazor应用程序中找到答案?至少要捕捉到这个错误并等待连接恢复,这样页面就不会褪色?
到目前为止,当我遇到这个错误时,我只能通过javascript自动重新加载页面。但无论如何,我不能在生产中使用这个解决方案,因为页面会有一秒钟的时间关闭,看起来不太好。我需要在之前抓住它并保持页面活动。
谢谢。
FYI,您是否检查了服务器端的某个地方,比如IIS服务器和DB之间使用数据库上下文中数据的逻辑或生产中的安全性/config?如果你确信它来自DB上下文,那么你是否通过测试来验证其他可能性,比如制作具有长延迟时间的测试方法/或返回数据以检查错误是否仍然发生的实体模型方法?
我曾经在一个对象中有一个非常愚蠢的代码。但是代码构建时没有任何错误。但它在运行时发生冲突,没有任何与问题有关的线索。
private string _oh;
public string oh
{
get { return _oh; }
set { oh= value; // cause infinite loop > should _oh
}
}
最糟糕的是,抛出的错误与这个问题的信息相同,所以我很确定其他地方有根子句。
Error: Connection disconnected with error 'Error: WebSocket closed with status code: 1006 ()