我们正在使用 Episerver 和 ImageVault,它已经运行了很长时间。直到最近,当向公众用户展示专辑时,无缘无故停止工作。我们的项目中没有代码更改或对周围服务器环境的更改。IVFileList 控件数据绑定时引发异常。抛出的异常是“主域和可信域之间的信任关系失败”。
我已经调试了代码,得出的结论是异常的原因实际上是因为 Episerver 试图通过 WindowsMemberShipProvider 找到一个名为“Anonymous”的用户。我在下面包含了一个简化的堆栈跟踪(排除了几个可读性调用)。我从 DataBind 调用开始,该调用导致调用 episervers multiplexprovider 以查找用户“匿名”,这反过来又导致调用引发异常的 TranslateToSids 方法。
System.Security.Principal.NTAccount.TranslateToSids(...)
EPiServer.Security.MultiplexingMembershipProvider.FindMembershipUser("Anonymous")
ImageStoreNET.Developer.WebControls.IVFileListData.DataBind()
通过在网络服务器中创建一个本地帐户并将其命名为“匿名”,我找到了解决此问题的方法。现在一切都恢复正常了!TranslateToSids 方法不再抛出异常,相册图片可见。
有没有人知道为什么突然需要这个帐户?回想起来,我们以前从未有过。尽管解决方法有效,但创建本地帐户感觉像是一个丑陋的解决方案。这应该是解决这个问题的更正确的方法。有什么建议么?