Orchardcms 升级到1.10.3的网站在UserPartContentQuery上抛出StrackOverflowException。如何排除故障?

Orchardcms 升级到1.10.3的网站在UserPartContentQuery上抛出StrackOverflowException。如何排除故障?,orchardcms,Orchardcms,我继承了一个Orchard项目,该项目从1.6版开始,随后升级到1.7、1.8、1.9和1.9.3版,没有问题。我现在已经采取步骤升级到1.10.3。这涉及将自定义模块的.NET framework版本从4.5.1更改为4.5.2,但没有引起任何问题。解决方案构建时没有错误,我可以匿名运行和浏览网站。日志中未显示任何错误或警告 但是,当我尝试以用户身份登录时,会出现w3wp异常,并且我的本地IIS会关闭。同样,在此之前不会记录任何错误。调试时,DefaultContentQuery.cs的第13

我继承了一个Orchard项目,该项目从1.6版开始,随后升级到1.7、1.8、1.9和1.9.3版,没有问题。我现在已经采取步骤升级到1.10.3。这涉及将自定义模块的.NET framework版本从4.5.1更改为4.5.2,但没有引起任何问题。解决方案构建时没有错误,我可以匿名运行和浏览网站。日志中未显示任何错误或警告

但是,当我尝试以用户身份登录时,会出现w3wp异常,并且我的本地IIS会关闭。同样,在此之前不会记录任何错误。调试时,
DefaultContentQuery.cs
的第134行出现StackOverflowException:

var criteria = (CriteriaImpl)queryProvider.TranslateExpression(queryable.Expression);
它不断被Orchard.Users.MembershipService中的第137行反复调用,但从未解析:

return _orchardServices.ContentManager.Query<UserPart, UserPartRecord>().Where(u => u.NormalizedUserName == lowerName).List().FirstOrDefault();
return\u orchardServices.ContentManager.Query().Where(u=>u.NormalizedUserName==lowerName.List().FirstOrDefault();

我意识到这可能是我的特定项目中的一个问题,但对于如何进行故障排除的任何建议,我将不胜感激。

这是Orchard中一个长期未解决的问题,原因是用户类型上有一个公共部分:

当对某个内容类型执行查询时,Orchard会在某个点创建该类型内容项的新实例。这将触发与该类型关联的所有ContentHandler。当调用CommonPartHandler且其OwnerId为0时,它会尝试将当前用户设置为所有者,这会在登录时在GetUser()方法中发生无限循环。如果不需要,解决方案是从用户类型中删除CommonPart,或者将CommonPartHandler的源代码更改为用户类型的项