Blazor "No element is currently associated with component {n}" 错误,但仅在生产中
Blazor "No element is currently associated with component {n}" error, but only in production
我的网站由 IIS 中的 .Net 5 Web 服务 运行 托管,一切正常。但是我有一系列页面作为搜索页面来查看结果列表,然后是每个链接到详细信息页面的结果的“查看更多详细信息”按钮。当我 运行 开发环境中的应用程序一切正常时,在生产环境中,我可以通过 API 在 OnInitializedAsync()
方法中调用我的 Web 服务来确认数据正在被正确检索,我在“网络”选项卡中看到了数据,我什至尝试将其打印到控制台以确保它在那里并且是正确的,甚至被正确反序列化。但是应用程序抛出错误“错误:当前没有元素与组件 159 关联”(159 是其中之一,它显示多个数字,因为此错误在浏览器控制台中多次出现)。只有在生产环境中为 运行 时才会出现此错误。我的问题是,当页面加载并且所有数据都存在时,显示 none 的数据,并且更新 none 的组件。为什么这在开发环境中可以正常工作,但在生产环境中会崩溃。这是一个已知问题,还是我可能在某处犯了某种错误?
我明白这个错误意味着一个组件被引用但实际上是空的,或者我试图在页面中显示来自 C# 变量的数据,但该变量是空的。但是为什么是null,我的数据是有的,不应该是null。我会 post 原始数据结果,但其中包含敏感信息,所以我不能。但让我最困惑的是,有多个页面遵循相同的概念,而且它们似乎都工作正常,除了这个。
我想这对我来说能够判断哪个组件“当前未关联”与该元素会有所帮助。但是我找不到任何东西告诉我哪个组件给我带来了麻烦。有人能给我指出正确的方向吗?
非常感谢!
P.S。我不是在找人为我解决问题,但如果有人以前见过这个,那么向正确的方向推动将是理想的。
好吧,我发现了问题。我不得不注释掉个别组件并重新发布该站点大约 20 次以上,以缩小导致问题的组件范围。我在我们的网络上有另一项服务 运行,允许用户访问网络上通常不可用的不同打印机,并且我将对这些打印机的引用存储在数据库中。我正在加载的页面拉出打印机列表,该列表在生产环境中为空,因为它使用了 Google Chrome 的不同实例,这意味着存储在 [=10 中的列表=] 在我导航到下载列表的页面之前,从未下载和存储过。因此,该组件块开头的简单 if ({list} != null)
解决了我的问题。菜鸟错误,但感谢为我调查此问题的任何人!
我的网站由 IIS 中的 .Net 5 Web 服务 运行 托管,一切正常。但是我有一系列页面作为搜索页面来查看结果列表,然后是每个链接到详细信息页面的结果的“查看更多详细信息”按钮。当我 运行 开发环境中的应用程序一切正常时,在生产环境中,我可以通过 API 在 OnInitializedAsync()
方法中调用我的 Web 服务来确认数据正在被正确检索,我在“网络”选项卡中看到了数据,我什至尝试将其打印到控制台以确保它在那里并且是正确的,甚至被正确反序列化。但是应用程序抛出错误“错误:当前没有元素与组件 159 关联”(159 是其中之一,它显示多个数字,因为此错误在浏览器控制台中多次出现)。只有在生产环境中为 运行 时才会出现此错误。我的问题是,当页面加载并且所有数据都存在时,显示 none 的数据,并且更新 none 的组件。为什么这在开发环境中可以正常工作,但在生产环境中会崩溃。这是一个已知问题,还是我可能在某处犯了某种错误?
我明白这个错误意味着一个组件被引用但实际上是空的,或者我试图在页面中显示来自 C# 变量的数据,但该变量是空的。但是为什么是null,我的数据是有的,不应该是null。我会 post 原始数据结果,但其中包含敏感信息,所以我不能。但让我最困惑的是,有多个页面遵循相同的概念,而且它们似乎都工作正常,除了这个。
我想这对我来说能够判断哪个组件“当前未关联”与该元素会有所帮助。但是我找不到任何东西告诉我哪个组件给我带来了麻烦。有人能给我指出正确的方向吗?
非常感谢!
P.S。我不是在找人为我解决问题,但如果有人以前见过这个,那么向正确的方向推动将是理想的。
好吧,我发现了问题。我不得不注释掉个别组件并重新发布该站点大约 20 次以上,以缩小导致问题的组件范围。我在我们的网络上有另一项服务 运行,允许用户访问网络上通常不可用的不同打印机,并且我将对这些打印机的引用存储在数据库中。我正在加载的页面拉出打印机列表,该列表在生产环境中为空,因为它使用了 Google Chrome 的不同实例,这意味着存储在 [=10 中的列表=] 在我导航到下载列表的页面之前,从未下载和存储过。因此,该组件块开头的简单 if ({list} != null)
解决了我的问题。菜鸟错误,但感谢为我调查此问题的任何人!