Tengo un servicio wcf que usa devoluciones de llamada con DualHttpBindings. El servicio devuelve una tabla de datos de resultados de búsqueda al cliente (para una búsqueda de larga ejecución) a medida que los encuentra.excepción de devolución de llamada del wcf después de actualizar a .net 4.0
Esto funcionó bien en .Net 3.5. Desde que actualicé a .Net 4.0, se dispara con System.Runtime.FatalException que realmente mata el proceso de trabajo de IIS. No tengo ni idea de cómo empezar a arreglar esto. Cualquier recomendación apreciada.
La información de los registros de eventos resultantes se pega a continuación:
producido una excepción no controlada y el proceso se terminó.
ID de aplicación:/LM/W3SVC/2/ROOT/CP
Proceso ID: 5284
> Excepción: System.Runtime.FatalException
> Mensaje: Referencia a objeto no establecido en una instancia de un objeto.
StackTrace: en System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4 (MessageRpc & RPC) en System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31 (MessageRpc & RPC) en System.ServiceModel.Dispatcher .MessageRpc.Process (Boolean isOperationContextSet) en System.ServiceModel.Dispatcher.ChannelHandler.DispatchAndReleasePump (RequestContext solicitud, Boolean cleanThread, OperationContext currentOperationContext) en System.ServiceModel.Dispatcher.ChannelHandler.HandleRequest (RequestContext solicitud, OperationContext currentOperationContext) en System.ServiceModel.Dispatcher.ChannelHandler.AsyncMessagePump (IAsyncResult resultado) en System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame (IAsyncResult resultado) en System.Runtime.AsyncResult.Complete (booleano completedSynchronously) en System.Runtime.InputQueue
1.AsyncQueueReader.Set(Item item) at System.Runtime.InputQueue
1.Dispatch() en System.ServiceModel.Channels.ReliableDuplexSessionChannel.ProcessDuplexMessage (WsrmMessageInfo información) a System.ServiceModel.Channels.ReliableDuplexSessionChannel.HandleReceiveComplete (IAsyncResult resultado) en System.ServiceModel.Channels.ReliableDuplexSessionChannel.OnReceiveCompletedStatic (IAsyncResult resultado) en System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame (IAsyncResult resultado) en Sistema .Runtime.AsyncResult.Complete (Boolean completedSynchronously) en System.ServiceModel.Channels.ReliableChannelBinder1.InputAsyncResult
1.OnInputComplete (IAsyncResult resultado) en System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame (IAsyncResult resultado) en System.Runtime.AsyncResult.Complete (Boolean completedSynchronously) en System.Runtime.InputQueue1.AsyncQueueReader.Set(Item item) at System.Runtime.InputQueue
1.Dispatch() en System.Runtime.IOThreadScheduler.ScheduledOverlapped.IOCallback (UInt32 errorCode, uint32 numBytes, nativeOverlapped * nativeOverlapped)
en System.Runtime.Fx.IOCompletionThunk.UnhandledExceptionFrame (UInt32 error , UInt32 BytesRead, nativeOverlapped * nativeOverlapped)
en System.Threading._IOCompletionCa llback.PerformIOCompletionCallback (UInt32 errorCode, UInt32 numBytes, NativeOverlapped * pOVERLAP)> InnerException: > System.NullReferenceException
Mensaje: referencia a objeto no establecida una instancia de una objeto.
StackTrace: en System.Web.HttpApplication.ThreadContext.Enter (Boolean setImpersonationContext) en System.Web.HttpApplication.OnThreadEnterPrivate (Boolean setImpersonationContext) en System.Web.AspNetSynchronizationContext.CallCallbackPossiblyUnderLock (SendOrPostCallback de devolución de llamada, el estado del objeto) en System.Web.AspNetSynchronizationContext.CallCallback (SendOrPostCallback devolución de llamada, objeto de estado) en System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4 (MessageRpc & RPC)
+1 voto. gracias James, ahorras mi tiempo :) –
¡Eso funcionó!Aunque mi escenario era un poco diferente del artículo en el sentido de que se lanzó la excepción antes de invocar el método de devolución de llamada. – Jan