3

站点核心 6.6

新站点在我们的 Sitecore 实例上上线后,我的日志文件中收到以下消息:

19224 10:04:41 ERROR Failed to perform Visit End actions
Exception: System.InvalidCastException
Message: Unable to cast object of type 'Sitecore.Web.SessionEndWorkerRequest' to type 'System.Web.Hosting.IIS7WorkerRequest'

已经存在一段时间的其他站点没有显示这些错误消息。

我们有一个 CM 服务器和两个独立的 CD 服务器,它们无权访问master数据库。

在研究错误时,很多人提到您必须删除对master数据库的引用,但据我所知,我没有任何引用。我使用了“SwitchMasterToWeb.config”文件。

有任何想法吗?

谢谢!

4

2 回答 2

1

您现在可能已经忘记了这一点,但是既然您说您会感兴趣...

看起来错误消息Failed to perform Visit End actions错误来自通常在 Sitecore.Analytics.config 文件中配置的 visitEnd 管道中的异常。我不确定为什么失败的请求跟踪会对此产生任何影响。检查以下内容:

  • 您是否有任何用于 visitEnd 管道的自定义处理器?
  • 您是否定义了自定义规则/sitecore/system/Settings/Analytics/Rules/Session End/Rules
  • 您是否在/sitecore/system/Settings/Analytics/Page Events/Session End项目上定义了规则?

如果那里一切正常,我认为你是安全的。

于 2013-10-29T18:06:08.220 回答
0

这有点晚了,但可能对其他人有帮助,因为当前版本中也存在同样的问题。

ERROR Failed to perform Visit End actions 
Exception: System.InvalidOperationException 
Message: Could not find configuration node: databases/database[@id='master'] 
Source: Sitecore.Kernel 
   at Sitecore.Diagnostics.Assert.IsTrue(Boolean condition, String message) 
   at Sitecore.Configuration.Factory.GetConfigNode(String xpath, Boolean assert) 
   at Sitecore.Configuration.Factory.CreateObject(String configPath, String[] parameters, Boolean assert) 
   at Sitecore.Configuration.Factory.GetDatabase(String name) 
   at Sitecore.Analytics.Pipelines.VisitEnd.RunRules.Process(VisitEndArgs endArgs) 
   at (Object , Object[] ) 
   at Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args) 
   at Sitecore.Analytics.VisitEndWorker.Helper.Process(Action visitEndAction)

要解决此问题,您需要创建一个名为 Sitecore.Analytics.DefaultDefinitionDatabase.config 的新文件,并添加以下配置:

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
    <sitecore>
        <settings>
            <setting name="Analytics.DefaultDefinitionDatabase">
                <patch:attribute name="value">web</patch:attribute>
            </setting>
        </settings>
  </sitecore>
</configuration>

注意: 此设置目前不在任何文件中,它被硬编码到 Analytics DLL 中,并且此设置的默认值为“master”,因此,您必须创建一个新的配置文件来覆盖此设置。如果您仍然收到错误,则标准安装后添加的配置文件中可能有更多对 master 的引用。两个示例是 News Mover 模块和 Advanced Database Crawler。解决方案是找到对这些主数据库的所有引用并修补它们以替换为 Web 或完全删除该设置(如果在交付服务器的上下文中不需要它)。

参考:http ://www.sitecoredevelopment.com/MarkGraber/2013/June/Tips-on-Setting-up-a-Content-Delivery-Server-with-No-Master-Database.aspx

于 2016-05-09T13:04:58.747 回答