2011-01-21 3 views
3

요청 중에 데이터를 전송하는 동안 내가 말할 수있는 System.OutOfMemoryException을 던지고있는 서버가 있습니다. 이 추적을 보면서 내 가정이 맞습니까?요청시 WCF가있는 System.OutOfMemoryException

System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown. 
    at System.Net.Security.NegoState.ProcessAuthentication(LazyAsyncResult lazyResult) 
    at System.Net.Security.NegotiateStream.AuthenticateAsServer(NetworkCredential credential, ProtectionLevel requiredProtectionLevel, TokenImpersonationLevel requiredImpersonationLevel) 
    at System.ServiceModel.Channels.WindowsStreamSecurityUpgradeProvider.WindowsStreamSecurityUpgradeAcceptor.OnAcceptUpgrade(Stream stream, SecurityMessageProperty& remoteSecurity) 
    at System.ServiceModel.Channels.StreamSecurityUpgradeAcceptorBase.AcceptUpgrade(Stream stream) 
    at System.ServiceModel.Channels.InitialServerConnectionReader.UpgradeConnection(IConnection connection, StreamUpgradeAcceptor upgradeAcceptor, IDefaultCommunicationTimeouts defaultTimeouts) 
    at System.ServiceModel.Channels.ServerSessionPreambleConnectionReader.ServerFramingDuplexSessionChannel.OnOpen(TimeSpan timeout) 
    at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) 
    at System.ServiceModel.Channels.CommunicationObject.Open() 
    at System.ServiceModel.Dispatcher.ChannelHandler.OpenAndEnsurePump() 
    at System.ServiceModel.Dispatcher.ChannelHandler.OpenAndEnsurePump(Object state) 
    at System.ServiceModel.Channels.IOThreadScheduler.CriticalHelper.WorkItem.Invoke2() 
    at System.ServiceModel.Channels.IOThreadScheduler.CriticalHelper.WorkItem.OnSecurityContextCallback(Object o) 
    at System.Security.SecurityContext.Run(SecurityContext securityContext, ContextCallback callback, Object state) 
    at System.ServiceModel.Channels.IOThreadScheduler.CriticalHelper.WorkItem.Invoke() 
    at System.ServiceModel.Channels.IOThreadScheduler.CriticalHelper.ProcessCallbacks() 
    at System.ServiceModel.Channels.IOThreadScheduler.CriticalHelper.CompletionCallback(Object state) 
    at System.ServiceModel.Channels.IOThreadScheduler.CriticalHelper.ScheduledOverlapped.IOCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped) 
    at System.ServiceModel.Diagnostics.Utility.IOCompletionThunk.UnhandledExceptionFrame(UInt32 error, UInt32 bytesRead, NativeOverlapped* nativeOverlapped) 
    at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP) 

나는 maxArrayLength 있고, maxStringContentLength 내 config 파일에서 정말 높게 설정. 이들 중 하나가 매우 크고 채널에서이 오류가 발생할 수 있습니까? 이것은 IPC를 통해 다른 프로세스와 로컬로 통신하는 .NET WCF 서비스입니다.

+0

에서보고 싶을 수도 당신이 전에 메모리에 대한 분석을 해본 적이 (그리고 정말 쉬운 일이 아니다) 한 경우

. – VoodooChild

+1

당신은 얼마나 많은 페이로드를 보내고 있습니까? –

+0

이 메시지가 산발적입니까, 아니면 특정 메시지가 원인입니까? –

답변

3

이것은 제작상의 문제이며 다른 장소에서 일어나는 일들을 산발적으로 생각하면 높은 메모리 사용 문제가있는 것 같습니다. 나는 시스템의 메모리 덤프를 얻고 WinDbg를 사용하여이 문제의 원인을 확인합니다.

proc dump 또는 Debug Diag을 사용하면됩니다.하지만 필요한 경우 32 비트 또는 64 비트를 사용해야합니다. 당신이 정말로 high`, 당신은 최대 한계가 있음을 알고있다`무엇 this article