Blazor "No element is currently associated with component {n}"错误,但仅在生产环境中



我的网站是由运行在IIS中的。net 5 web服务托管的,这一切都很好。但是我有一系列的页面作为搜索页面来查看结果列表,然后是"查看更多详细信息"。按钮,用于链接到详细信息页面的每个结果。当我在开发环境中运行应用程序时,一切都工作正常,并且在生产中,我可以确认通过对OnInitializedAsync()方法中的web服务的API调用正确检索数据,我在Network选项卡中看到数据,我甚至尝试将其打印到控制台以确定,并且它在那里并且是正确的,甚至被正确地反序列化。但是应用会抛出错误"error:没有元素当前与组件159关联"。(159是其中之一,它显示多个数字,因为这个错误在浏览器控制台中多次出现)。只有在生产环境中运行时才会发生此错误。我的问题是,当页面加载并且所有数据都在那里时,没有显示任何数据,也没有更新任何组件。为什么这在开发环境中运行良好,但在生产环境中崩溃?这是一个已知的问题,还是我可能在某个地方犯了某种错误?

我理解这个错误意味着一个组件被引用,但实际上是空的,或者我试图从一个c#变量在页面中显示数据,但该变量是空的。但为什么它是空的,我的数据在那里,它不应该是空的。我想发布原始数据结果,但它包含敏感信息,所以我不能。但最让我困惑的是,有多个页面遵循相同的概念,他们似乎都工作得很好,除了这个。

我想这将有助于我能够告诉哪个组件是"当前不相关的"。元素。但是我找不到任何东西来告诉我是哪个部件出了问题。有人能给我指个正确的方向吗?

提前感谢!

注:我不是在找人帮我解决这个问题,但如果有人以前见过这种情况,那么在正确的方向上轻推一下将是理想的。

我发现了问题。我不得不对个别组件进行评论,并重新发布网站大约20多次,以缩小导致问题的组件范围。我在我们的网络上运行了另一个服务,它允许用户访问网络上通常不可用的不同打印机,并且我将对这些打印机的引用存储在数据库中。我正在加载的页面拉出打印机列表,该列表在生产环境中为空,因为它使用不同的Google Chrome实例,这意味着存储在localStorage中的列表从未被下载和存储,直到我导航到下载列表的页面。所以一个简单的if ({list} != null)在组件块的开始解决了我的问题。菜鸟犯的错误,但感谢那些帮我调查的人!

相关内容

最新更新