Mongodb Sitecore 8分析:PostSessionEndPipeline失败

Mongodb Sitecore 8分析:PostSessionEndPipeline失败,mongodb,sitecore,sitecore8,sitecore-analytics,Mongodb,Sitecore,Sitecore8,Sitecore Analytics,我最近在一个生产环境中配置了MongoDB和Sitecore 8 Analytics(rev.150812),效果很好。然而,奇怪的是,我在live网站的每个页面浏览的日志文件中都会遇到这个错误,我不知道为什么会发生这种情况以及如何纠正它。始终是一对错误(PostSessionEndPipeline失败+PostSessionEndPipeline失败)。这在内容交付服务器上发生。MongoDB位于另一台服务器上。交付服务器位于一个Azure VM上,MongoDB位于另一个VM上。这和会话超时

我最近在一个生产环境中配置了MongoDB和Sitecore 8 Analytics(rev.150812),效果很好。然而,奇怪的是,我在live网站的每个页面浏览的日志文件中都会遇到这个错误,我不知道为什么会发生这种情况以及如何纠正它。始终是一对错误(PostSessionEndPipeline失败+PostSessionEndPipeline失败)。这在内容交付服务器上发生。MongoDB位于另一台服务器上。交付服务器位于一个Azure VM上,MongoDB位于另一个VM上。这和会话超时或类似的事情有什么关系吗

7072 00:09:19 ERROR PostSessionEndPipeline failed.
Exception: System.IO.IOException
Message: Unable to read data from the transport connection: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
Source: System
   at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
   at MongoDB.Bson.IO.ByteBufferFactory.LoadFrom(Stream stream)
   at MongoDB.Driver.Internal.MongoConnection.ReceiveMessage[TDocument](BsonBinaryReaderSettings readerSettings, IBsonSerializer serializer, IBsonSerializationOptions serializationOptions)
   at MongoDB.Driver.Operations.QueryOperation`1.GetFirstBatch(IConnectionProvider connectionProvider)
   at MongoDB.Driver.Operations.QueryOperation`1.Execute(IConnectionProvider connectionProvider)
   at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source)
   at MongoDB.Driver.MongoCollection.FindOneAs[TDocument](FindOneArgs args)
   at Sitecore.Analytics.Data.DataAccess.MongoDb.MongoDbCollection.<>c__DisplayClass1d`1.<FindOneByIdAs>b__1c()
   at Sitecore.Analytics.Data.DataAccess.MongoDb.MongoDbCollection.Execute(Action action, ExceptionBehavior exceptionBehavior)
   at Sitecore.Analytics.Data.DataAccess.MongoDb.MongoDbCollection.FindOneByIdAs[TDocument](BsonValue value, Nullable`1 exceptionBehavior)
   at Sitecore.Analytics.Data.DataAccess.MongoDb.MongoDbDriver.FindOneByIdAs[T](Object key)
   at Sitecore.Analytics.Data.DataAccess.MongoDb.MongoDbDictionary.LoadAs[T](Object key)
   at Sitecore.Analytics.Data.Dictionaries.TrackingDictionary`2.Get(TKey key, LookupStrategy strategy)
   at Sitecore.Analytics.Pipelines.EnsureClassification.GetClassificators.Process(EnsureClassificationPipelineArgs args)
   at (Object , Object[] )
   at Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args)
   at (Object , Object[] )
   at Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args)
   at Sitecore.Analytics.Pipelines.PostSessionEnd.CommitSession.Process(PostSessionEndArgs args)
   at (Object , Object[] )
   at Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args)
   at Sitecore.Web.Application.RaiseSessionEndEvent(HttpApplication context)

Nested Exception

Exception: System.Net.Sockets.SocketException
Message: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
Source: System
   at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)


1572 00:09:19 ERROR SessionEndPipeline failed.
Exception: System.IO.IOException
Message: Unable to read data from the transport connection: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
Source: System
   at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
   at MongoDB.Bson.IO.ByteBufferFactory.LoadFrom(Stream stream)
   at MongoDB.Driver.Internal.MongoConnection.ReceiveMessage[TDocument](BsonBinaryReaderSettings readerSettings, IBsonSerializer serializer, IBsonSerializationOptions serializationOptions)
   at MongoDB.Driver.Operations.QueryOperation`1.GetFirstBatch(IConnectionProvider connectionProvider)
   at MongoDB.Driver.Operations.QueryOperation`1.Execute(IConnectionProvider connectionProvider)
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at Sitecore.Analytics.Automation.Data.MongoDbAutomationProvider.GetAutomationDocuments(ID contactId, IReadOnlyCollection`1& stateDocuments, IReadOnlyCollection`1& transitionDocuments)
   at Sitecore.Analytics.Automation.Data.MongoDbAutomationProvider.GetAutomationContext(ID contactId, DateTime timestampExclusive)
   at Sitecore.Analytics.Automation.Data.AutomationProvider.GetAutomationContext(ID contactId)
   at Sitecore.Analytics.Automation.Data.AutomationStateManager.Create(Contact contact)
   at Sitecore.Analytics.Automation.ContactAutomationEvents.Run(Session session, PageEventItem pageEventDefinitionItem)
   at (Object , Object[] )
   at Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args)
   at (Object , Object[] )
   at Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args)
   at Sitecore.Web.Application.RaiseSessionEndEvent(HttpApplication context)

Nested Exception

Exception: System.Net.Sockets.SocketException
Message: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
Source: System at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
7072 00:09:19错误PostSessionEndPipeline失败。
异常:System.IO.IOException
消息:无法从传输连接读取数据:连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机没有响应。
资料来源:系统
位于System.Net.Sockets.NetworkStream.Read(字节[]缓冲区,Int32偏移量,Int32大小)
在MongoDB.Bson.IO.ByteBufferFactory.LoadFrom(流)
在MongoDB.Driver.Internal.MongoConnection.ReceiveMessage[TDocument](BsonBinaryReaderSettings readerSettings、IBMSOnSerializer serializer、IBMSOnSerializationOptions serializationOptions)
在MongoDB.Driver.Operations.QueryOperation`1.GetFirstBatch(IConnectionProvider connectionProvider)
在MongoDB.Driver.Operations.QueryOperation`1.Execute(IConnectionProvider connectionProvider)
位于System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1源)
在MongoDB.Driver.MongoCollection.FindOneAs[TDocument](FindOneArgs args)
在Sitecore.Analytics.Data.DataAccess.MongoDb.MongoDbCollection.c__DisplayClassAD`1.b__1c()中
在Sitecore.Analytics.Data.DataAccess.MongoDb.MongoDbCollection.Execute(Action Action,ExceptionBehavior ExceptionBehavior)
在Sitecore.Analytics.Data.DataAccess.MongoDb.MongoDbCollection.FindOneByIdAs[TDocument](BsonValue值,可为null的`1异常行为)
在Sitecore.Analytics.Data.DataAccess.MongoDb.MongoDbDriver.FindOneByIdAs[T](对象键)
在Sitecore.Analytics.Data.DataAccess.MongoDb.MongoDbDictionary.LoadAs[T](对象键)上
在Sitecore.Analytics.Data.Dictionary.TrackingDictionary`2.Get(TKey,LookupStrategy策略)
在Sitecore.Analytics.Pipelines.EnsureRescrimcation.GetClassificators.Process(EnsureRescrimcationPipelineArgs参数)
at(对象,对象[])
在Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args)
at(对象,对象[])
在Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args)
在Sitecore.Analytics.Pipelines.PostSessionEnd.CommitSession.Process(PostSessionEndArgs args)
at(对象,对象[])
在Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args)
在Sitecore.Web.Application.RaiseSessionEndEvent(HttpApplication上下文)上
嵌套异常
异常:System.Net.Sockets.SocketException
消息:由于连接方在一段时间后没有正确响应,连接尝试失败;或者由于连接的主机未能响应,建立的连接失败
资料来源:系统
位于System.Net.Sockets.NetworkStream.Read(字节[]缓冲区,Int32偏移量,Int32大小)
1572 00:09:19错误SessionEndPipeline失败。
异常:System.IO.IOException
消息:无法从传输连接读取数据:连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机没有响应。
资料来源:系统
位于System.Net.Sockets.NetworkStream.Read(字节[]缓冲区,Int32偏移量,Int32大小)
在MongoDB.Bson.IO.ByteBufferFactory.LoadFrom(流)
在MongoDB.Driver.Internal.MongoConnection.ReceiveMessage[TDocument](BsonBinaryReaderSettings readerSettings、IBMSOnSerializer serializer、IBMSOnSerializationOptions serializationOptions)
在MongoDB.Driver.Operations.QueryOperation`1.GetFirstBatch(IConnectionProvider connectionProvider)
在MongoDB.Driver.Operations.QueryOperation`1.Execute(IConnectionProvider connectionProvider)
位于System.Collections.Generic.List`1..ctor(IEnumerable`1集合)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
在Sitecore.Analytics.Automation.Data.MongoDbAutomationProvider.GetAutomationDocuments(ID contactId、IReadOnlyCollection`1和stateDocuments、IReadOnlyCollection`1和transitionDocuments)
位于Sitecore.Analytics.Automation.Data.MongoDbAutomationProvider.GetAutomationContext(ID contactId,DateTime timestampExclusive)
在Sitecore.Analytics.Automation.Data.AutomationProvider.GetAutomationContext(ID contactId)
在Sitecore.Analytics.Automation.Data.AutomationStateManager.Create(联系人)
在Sitecore.Analytics.Automation.ContactAutomationEvents.Run(会话会话,PageEventItem pageEventDefinitionItem)
at(对象,对象[])
在Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args)
at(对象,对象[])
在Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args)
在Sitecore.Web.Application.RaiseSessionEndEvent(HttpApplication上下文)上
嵌套异常
异常:System.Net.Sockets.SocketException
消息:由于连接方在一段时间后没有正确响应,连接尝试失败;或者由于连接的主机未能响应,建立的连接失败
来源:System.Net.Sockets.NetworkStream.Read上的系统(字节[]缓冲区,Int32偏移量,Int32大小)

看起来像是网络问题。Azure VM能否通过MongoDb端口与MongoDb VM联系(默认值为27017)?您可以使用telnet检查-telnet yourvmip 27017。是的,它可以通过27017进行通信,我可以在命令行窗口(mongod.exe)上看到正在建立连接并注册访问,因此体验分析可以聚合并显示图表。换句话说,尽管存在错误,它仍然有效。但是,会话似乎无法正常关闭,因此在花费1小时后,它将在mongodb端结束