AppFabric服务经常崩溃 [英] AppFabric service crashing frequently

查看:72
本文介绍了AppFabric服务经常崩溃的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

< Data Name =" Source"> AppFabricCachingService.Crash< / Data> < Data Name =" Param"> System.Runtime.CallbackException:异步回调引发了异常.---> System.IdentityModel.Tokens.SecurityTokenValidationException:服务不允许匿名登录。在System.ServiceModel.Security.SecurityUtils.ValidateAnonymityConstraint(WindowsIdentity
identity,Boolean allowUnauthenticatedCallers)在System.ServiceModel.Channels.WindowsStreamSecurityUpgradeProvider.WindowsStreamSecurityUpgradeAcceptor.CreateClientSecurity(NegotiateStream negotiateStream) ,Boolean extractGroupsForWindowsAccounts)在System.ServiceModel.Channels.WindowsStreamSecurityUpgradeProvider.WindowsStreamSecurityUpgradeAcceptor.OnAcceptUpgrade(Stream
stream,SecurityMessageProperty&remoteSecurity)在System.ServiceModel.Channels.StreamSecurityUpgradeAcceptorBase.AcceptUpgrade(Stream stream)在Microsoft.ApplicationServer.Caching.VelocityStreamSecurityUpgradeAcceptor。 AcceptUpgrade(Stream stream)在System.ServiceModel.Channels.InitialServerConnectionReader.UpgradeConnection(IConnection
connection,StreamUpgradeAcceptor upgradeAcceptor,IDefaultCommunicationTi) meouts defaultTimeouts)在System.ServiceModel.Channels.ServerSessionPreambleConnectionReader.ServerFramingDuplexSessionChannel.OnOpen(TimeSpan timeout)在System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan
timeout)在Microsoft.ApplicationServer.Caching.WcfServerChannel.Listen(IAsyncResult结果) )在System.Runtime.AsyncResult.Complete(Boolean completedSynchronously)---内部异常堆栈跟踪的结尾---在System.Runtime.AsyncResult.Complete(Boolean completedSynchronously)在System.Runtime.InputQueue`1.AsyncQueueWaiter.Set( Boolean
itemAvailable)在System.Runtime.InputQueue`1.CompleteWaiters(Boolean itemAvailable,IQueueWaiter [] waiters)在System.Runtime.InputQueue`1.EnqueueAndDispatch(Item item,Boolean canDispatchOnThisThread)在System.Runtime.InputQueue` 1.EnqueueAndDispatch(T item,
Action dequeuedCallback,Boolean canDispatchOnThisThread)在System.ServiceModel.Channels.TcpDuplexChannelListener.System.ServiceModel.Channels.ISessionPre ambleHandler.HandleServerSessionPreamble(ServerSessionPreambleConnectionReader preambleReader,ConnectionDemuxer
connectionDemuxer)在System.ServiceModel.Channels.ConnectionOrientedTransportManager`1.OnHandleServerSessionPreamble(ServerSessionPreambleConnectionReader serverSessionPreambleReader,ConnectionDemuxer connectionDemuxer)在System.ServiceModel.Channels.ConnectionDemuxer.OnSessionPreambleKnown(ServerSessionPreambleConnectionReader
serverSessionPreambleReader )在System.ServiceModel.Channels.ServerSessionPreambleConnectionReader.ContinueReading()在System.ServiceModel.Channels.ServerSessionPreambleConnectionReader.StartReading(Action`1 viaDelegate,TimeSpan receiveTimeout)在System.ServiceModel.Channels.ConnectionDemuxer.OnDuplexConnection(IConnection
连接, Action connectionDequeuedCallback,Int64 streamPosition,Int32 offset,Int32 size,TimeSpan timeout)在System.ServiceModel.Channels.ConnectionDemuxer.OnConnectionModeKnownCore(ConnectionMod) eReader modeReader,Boolean isCached)在System.ServiceModel.Channels.ConnectionDemuxer.OnConnectionModeKnown(ConnectionModeReader
modeReader)在System.ServiceModel.Channels.ConnectionModeReader.Complete()在System.ServiceModel.Channels.ConnectionModeReader.ReadCallback(Object state)在System.ServiceModel.Channels.SocketConnection.FinishRead()在System.ServiceModel.Channels.SocketConnection.AsyncReadCallback(Boolean
haveResult,Int32 error,Int32 bytesRead)在System.ServiceModel.Channels.OverlappedContext.CompleteCallback(UInt32错误, UInt32 numBytes,NativeOverlapped * nativeOverlapped)在System.Runtime.Fx.IOCompletionThunk.UnhandledExceptionFrame(UInt32错误,UInt32
bytesRead,NativeOverlapped * nativeOverlapped)在System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode,UInt32 numBytes,NativeOverlapped * pOVERLAP )< / Data>

解决方案

这是客户端尝试时服务中的错误默认情况下,WCF不会对未处理异常的匿名帐户进行身份验证。


客户端的示例  ;匿名是指客户端在本地帐户下运行(在缓存服务器计算机上不可见),并在到达服务器时转换为匿名。


如果您使用的是IIS应用程序池并在ApplicationPoolIdentity下运行,它映射到本地用户DefaultAppPool。您可以在网络服务下运行作为解决方法。


 


谢谢




<Data Name="Source">AppFabricCachingService.Crash</Data> <Data Name="Param">System.Runtime.CallbackException: 异步回调引发了异常。 ---> System.IdentityModel.Tokens.SecurityTokenValidationException: 服务不允许匿名登录。 在 System.ServiceModel.Security.SecurityUtils.ValidateAnonymityConstraint(WindowsIdentity identity, Boolean allowUnauthenticatedCallers) 在 System.ServiceModel.Channels.WindowsStreamSecurityUpgradeProvider.WindowsStreamSecurityUpgradeAcceptor.CreateClientSecurity(NegotiateStream negotiateStream, Boolean extractGroupsForWindowsAccounts) 在 System.ServiceModel.Channels.WindowsStreamSecurityUpgradeProvider.WindowsStreamSecurityUpgradeAcceptor.OnAcceptUpgrade(Stream stream, SecurityMessageProperty& remoteSecurity) 在 System.ServiceModel.Channels.StreamSecurityUpgradeAcceptorBase.AcceptUpgrade(Stream stream) 在 Microsoft.ApplicationServer.Caching.VelocityStreamSecurityUpgradeAcceptor.AcceptUpgrade(Stream stream) 在 System.ServiceModel.Channels.InitialServerConnectionReader.UpgradeConnection(IConnection connection, StreamUpgradeAcceptor upgradeAcceptor, IDefaultCommunicationTimeouts defaultTimeouts) 在 System.ServiceModel.Channels.ServerSessionPreambleConnectionReader.ServerFramingDuplexSessionChannel.OnOpen(TimeSpan timeout) 在 System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) 在 Microsoft.ApplicationServer.Caching.WcfServerChannel.Listen(IAsyncResult result) 在 System.Runtime.AsyncResult.Complete(Boolean completedSynchronously) --- 内部异常堆栈跟踪的结尾 --- 在 System.Runtime.AsyncResult.Complete(Boolean completedSynchronously) 在 System.Runtime.InputQueue`1.AsyncQueueWaiter.Set(Boolean itemAvailable) 在 System.Runtime.InputQueue`1.CompleteWaiters(Boolean itemAvailable, IQueueWaiter[] waiters) 在 System.Runtime.InputQueue`1.EnqueueAndDispatch(Item item, Boolean canDispatchOnThisThread) 在 System.Runtime.InputQueue`1.EnqueueAndDispatch(T item, Action dequeuedCallback, Boolean canDispatchOnThisThread) 在 System.ServiceModel.Channels.TcpDuplexChannelListener.System.ServiceModel.Channels.ISessionPreambleHandler.HandleServerSessionPreamble(ServerSessionPreambleConnectionReader preambleReader, ConnectionDemuxer connectionDemuxer) 在 System.ServiceModel.Channels.ConnectionOrientedTransportManager`1.OnHandleServerSessionPreamble(ServerSessionPreambleConnectionReader serverSessionPreambleReader, ConnectionDemuxer connectionDemuxer) 在 System.ServiceModel.Channels.ConnectionDemuxer.OnSessionPreambleKnown(ServerSessionPreambleConnectionReader serverSessionPreambleReader) 在 System.ServiceModel.Channels.ServerSessionPreambleConnectionReader.ContinueReading() 在 System.ServiceModel.Channels.ServerSessionPreambleConnectionReader.StartReading(Action`1 viaDelegate, TimeSpan receiveTimeout) 在 System.ServiceModel.Channels.ConnectionDemuxer.OnDuplexConnection(IConnection connection, Action connectionDequeuedCallback, Int64 streamPosition, Int32 offset, Int32 size, TimeSpan timeout) 在 System.ServiceModel.Channels.ConnectionDemuxer.OnConnectionModeKnownCore(ConnectionModeReader modeReader, Boolean isCached) 在 System.ServiceModel.Channels.ConnectionDemuxer.OnConnectionModeKnown(ConnectionModeReader modeReader) 在 System.ServiceModel.Channels.ConnectionModeReader.Complete() 在 System.ServiceModel.Channels.ConnectionModeReader.ReadCallback(Object state) 在 System.ServiceModel.Channels.SocketConnection.FinishRead() 在 System.ServiceModel.Channels.SocketConnection.AsyncReadCallback(Boolean haveResult, Int32 error, Int32 bytesRead) 在 System.ServiceModel.Channels.OverlappedContext.CompleteCallback(UInt32 error, UInt32 numBytes, NativeOverlapped* nativeOverlapped) 在 System.Runtime.Fx.IOCompletionThunk.UnhandledExceptionFrame(UInt32 error, UInt32 bytesRead, NativeOverlapped* nativeOverlapped) 在 System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP)</Data>

解决方案

This is a bug in service when client tries to connect as anonynmous.

WCF by default doesn't authenticate anonymous account for which the exception is not getting handled.

An example of client being anonymous is when client is running under a local account (not visible on the cache server machine) and is translated to anonymous by the time it reaches on server.

If you are using IIS app pool and running under ApplicationPoolIdentity, it maps to local user DefaultAppPool. You can instead run under Network Service as a workaround.

 

Thanks



这篇关于AppFabric服务经常崩溃的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆