Estoy en el proceso de solución de problemas de un servicio WCF que se cuelga en algún momento. El comportamiento en servicio es el siguiente:WCF: maxConcurrentCalls ha agotado
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall, ConcurrencyMode = ConcurrencyMode.Multiple)]
parámetros de limitación de peticiones son:
<serviceThrottling maxConcurrentCalls="50" maxConcurrentSessions="50" maxConcurrentInstances="50" />
A continuación se presenta el estado del servicio tomado de un vertedero de colgar:
0:000> !mdt 0000000000c9f270 -r
0000000000c9f270 (System.ServiceModel.Dispatcher.ServiceThrottle)
calls:0000000000c9f3d8 (System.ServiceModel.Dispatcher.FlowThrottle)
capacity:0x32 (System.Int32)
count:0x32 (System.Int32)
mutex:0000000000c9f418 (System.Object)
<NO FIELDS>
release:0000000000c9f398 (System.Threading.WaitCallback)
_target:0000000000c9f270 (System.ServiceModel.Dispatcher.ServiceThrottle)
<RECURSIVE>
_methodBase:NULL (System.Reflection.MethodBase)
_methodPtr:0000064273dddf30 (System.IntPtr)
_methodPtrAux:0000000000000000 (System.IntPtr)
_invocationList:NULL (System.Object)
_invocationCount:0000000000000000 (System.IntPtr)
<NO FIELDS>
waiters:0000000000c9f430 (System.Collections.Generic.Queue`1[[System.Object, mscorlib]])
_array:0000000028d73e70 (System.Object[], Elements: 16)
_head:0x1 (System.Int32)
_tail:0xA (System.Int32)
_size:0x9 (System.Int32)
_version:0x22 (System.Int32)
_syncRoot:NULL (System.Object)
propertyName:0000000000c9f2b8 (System.String: "MaxConcurrentCalls")
configName:0000000000c9f358 (System.String: "maxConcurrentCalls")
sessions:0000000000c9f508 (System.ServiceModel.Dispatcher.FlowThrottle)
capacity:0x32 (System.Int32)
count:0x9 (System.Int32)
....
instanceContexts:000000000105ffc8 (System.ServiceModel.Dispatcher.FlowThrottle)
capacity:0x32 (System.Int32)
count:0x32 (System.Int32)
Como se puede ver, maxConcurrentCalls se ha agotado, mientras que el recuento de sesiones es solo de 9. Me pregunto si esto podría deberse a un mal funcionamiento en el código del cliente sobre el proxy uso, como el manejo de excepciones pobre?
Dado un vuelco de memoria del servicio, ¿hay alguna forma de encontrar las direcciones IP de los clientes?
TIA.
Hola, tengo un problema similar (consulte http://stackoverflow.com/questions/20842923/wcf-maxconcurrentsessions-exceeded). ¿Podría proporcionarme información adicional sobre su solución y la técnica de depuración? ¡Gracias! –