Kentico 12:系统范围的宏失败

Kentico 12: System Wide Macro Failures

速成:本人从V7开始在Kentico平台上开发,时间跨度十余年。我已经使用了从 EMS 到免费版的所有许可证,并认为自己是 Kentico 专家。我定期构建自定义 Web 部件、表单控件、模块、计划任务、集成等并取得了很大的成功。

大约一周前,我开始在我的一个网站上遇到灾难性的宏故障,在我继续更详细地解释时,请记住我已经 多次辞职 宏以解决此问题。我的事件日志充满了宏错误:

一周前第一次出现这种情况时,我尝试了所有显而易见的事情(放弃宏、重新启动应用程序池等)。经过数小时的失败尝试,我最终从全新的部署创建了一个全新的站点,创建了一个新的数据库并从头开始重建站点,一切似乎都运行良好。一两天。然后又出现了同样的问题。这次我从头开始创建一个新的部署并将其连接到第二个数据库(我重新创建的第一个数据库),它再次运行。一阵子。直到它没有。现在我又来了,面临同样的问题,我不明白是什么导致了这个问题。

肯定是我的代码库或我的环境导致了这个问题,但我对幕后的 Kentico 代码知之甚少,无法确定要查找的位置。任何有类似经历的人,或可以提供一些帮助的 Kentico 专家,将不胜感激。

注意:我没有扩展或自定义 CMSApp 项目中的任何代码。我在该文件夹中所做的唯一更改是 web.config 应用程序设置、连接字符串等。我的项目是从全新安装的 K12 分支出来的,我所有的自定义代码和组件都进入了单独的项目。

编辑:从 Visual Studio(Windows 10 Pro 上的 2019 Enterprise)调试时以及在生产服务器(Azure VM 上的 Windows Server 2016)上部署时会出现此问题).

尝试使用 beyond compare 将有问题的网站与同一版本的同一修补程序进行文件比较。查看文件系统是否有任何明显差异。缺少 xml 的视图等。全局管理员是否被删除或设置为不允许?能不能新建一个神级用户,给那个用户设置宏?

所以答案是我从 Custom Module 注册的 Custom Macro Namespace 中的一个小故障。显然,注册过程中的某些事情导致整个 Macro Engine 崩溃。我实际上并不知道具体是什么故障,为了方便起见,我已经完全废弃了自定义宏。既然我知道它们对整个 Kentico 应用程序可能产生的影响,我以后可能会谨慎地重新引入它们,但现在我需要启动这个项目。

我不确定为什么在这几个月后它开始出现问题,因为命名空间中的宏没有在任何地方使用,但至少我(我们)有答案。我很惊讶没有日志条目表明问题与自定义宏注册有关,而且缺少日志条目肯定让我花费了很多时间进行诊断,但我很高兴与大家分享这个问题确实在我身后,在久违了。