2011-03-01 15 views
6

Los usuarios a veces obtienen una excepción extraña al trabajar con la aplicación. No podría reproducirlo nunca. Sucede cuando se ejecuta una consulta de servicio de dominio particular. Esta consulta se ejecuta con bastante frecuencia (cada vez que el usuario guarda cambios).Esporádica Arg_COMException en Silverlight al cargar datos del servicio RIA

La consulta no tiene parámetros. No es simple filtrado: Context.GetEventsQuery() Donde (LCE => lce.Id> Maxid)

método de servicio de dominio es simple:. GetEvents IQueryable públicos() { ObjectContext.Events de retorno; }

Después de que suceda la primera vez, sigue sucediendo cada vez (hasta que el usuario actualice la página web).

Aquí está el texto de excepción de los registros: Operación de carga fallida para la consulta 'GetEvents'. System.ServiceModel.DomainServices.Client.DomainOperationException: Falló la operación de carga para la consulta 'GetEvents'. ---> System.Exception ---> System.Exception: [Arg_COMException] Argumentos: Las cadenas de recursos de depuración no están disponibles. A menudo, la clave y los argumentos proporcionan información suficiente para diagnosticar el problema. Consulte http://go.microsoft.com/fwlink/?linkid=106663&Version=4.0.50917.0&File=mscorlib.dll&Key=Arg_COMException en System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse (IAsyncResult asyncResult) en System.Net.Browser.BrowserHttpWebRequest. <> c__DisplayClass5.b__4 (Object sendState) en System.Net.Browser.AsyncHelper. <> c__DisplayClass2.b__0 (Object sendState) --- Final de seguimiento de pila de excepción --- en System.ServiceModel.DomainServices.Client.WebDomainClient`1.EndQueryCore (IAsyncResult asyncResult) en System.ServiceModel.DomainServices.Client .DomainClient.EndQuery (IAsyncResult asyncResult) en System.ServiceModel.DomainServices.Client.DomainContext.CompleteLoad (IAsyncResult asyncResult) --- final de seguimiento de pila de excepción --- en System.ServiceModel.DomainServices.Client.OperationBase. Complete (Error de excepción) en System.ServiceModel.DomainServices.Client.LoadOperation.Complete (Error de excepción) en System.ServiceModel.DomainServices.Client.DomainContext.CompleteLoad (IAsyncResult asyncResult) en System.ServiceModel.DomainServices.Client.DomainContext. <> c__DisplayClass1b.b__17 (Object)

¿Cuál puede ser el motivo?

+0

¿Alguna vez ha logrado solucionar esto o llegar a la causa de este error? Lo estamos teniendo también, ocasionalmente en nuestra interfaz de Silverlight. – Roy

+0

También veo evidencia muy esporádica de usuarios que encuentran esto en una llamada SOAP WS. ¿Alguna idea sobre qué está causando esto? –

Respuesta

4

Tuvimos el mismo problema esporádico. Lo rastreamos hasta la condición de carrera donde llamábamos "carga" en una fuente de datos de dominio más de una vez al mismo tiempo.

En nuestro caso, hemos escrito un comportamiento adjunto para la fuente de dominio llamado "DurableDomainDataSourceBehavior". Su trabajo consistía en atrapar cargas fallidas, comprobar si había una excepción de comunicación y, si la había, esperar unos segundos antes de volver a intentar cargarla. Descubrimos que teníamos una lógica defectuosa que asociaba varias instancias del comportamiento a la misma instancia de domaindatasource. Cuando un usuario final golpea un problema relacionado con la red mientras carga cada instancia de DurableDomainDataSourceBehavior llamará a la carga que dio como resultado la excepción arg_ComException. La solución consistía en asegurarnos de no haber adjuntado varias instancias del comportamiento a la misma instancia de domaindatasource y buscar otros lugares en el código donde podríamos estar llamando a DomainDataSource.Load más de una vez al mismo tiempo.

No estoy seguro de si esto es específico de DomainDataSource o si se puede reproducir con un DomainContext por sí mismo.Nunca pude reproducir el problema localmente, pero puedo confirmar que, desde nuestra corrección, ya no aparece en los registros.

+0

Gracias por la respuesta. Ni siquiera trabajo en ese proyecto y compañía, pero tu explicación tiene sentido, y teníamos una red inestable, por lo que puede ser el caso. –

+0

Recibía el mismo mensaje de error. En mi caso, estaba configurando la propiedad IsExpanded de un expansor en false, y esto a su vez activaba el evento _Collapsed, en el que estaba configurando el estado visual con VisualStateManager.GoToState enviando true en useTransitions param. Cambió eso a falso, y el error desapareció –

Cuestiones relacionadas