2010-07-25 10 views
5

La siguiente línea de código arroja una excepción ArgumentNullException en Chrome y Firefox en Silverlight. Estoy usando HttpWebRequest para publicar un archivo en el servidor. La excepción no ocurre en IE y solo ocurre cuando estoy cargando un archivo más grande (5mb). Bajo IE funciona bien. No vi ningún motivo en la documentación sobre por qué el código arrojaría esta excepción.¿Por qué EndGetResponse arroja ArgumentNullException?

//note that asyncResult is not null 
response = (HttpWebResponse)request.EndGetResponse(asyncResult); 

Aquí es el seguimiento de la pila de la excepción:

at System.Net.Browser.ClientHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult) 
at System.Net.Browser.ClientHttpWebRequest.<>c__DisplayClass5.<EndGetResponse>b__4(Object sendState) 
at System.Net.Browser.AsyncHelper.<>c__DisplayClass2.<BeginOnUI>b__0(Object sendState) 

y excepción interna:

at System.Net.Browser.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod, Object state) 
at System.Net.Browser.ClientHttpWebRequest.EndGetResponse(IAsyncResult asyncResult) 
at DC.FileUpload.FileUpload.<>c__DisplayClassc.<UploadFileEx>b__a(IAsyncResult asyncResult) 

Respuesta

1

Tengo exactamente el mismo error raro con HttpWebResponse (pero en absoluto otras circunstancias) unos pocos hace días. En mi caso, era un problema de subprocesos múltiples. Parece que el hilo principal y uno de los hilos de trabajo (con delegado) intenta compartir alguna variable. Así que puedo sugerir que intente mover todas las variables de nivel de clase a cuerpos de métodos (o agregar el bloqueo para secciones críticas) y luego depurar su aplicación con la ventana de "Subprocesos" activa.
Para habilitar esta ventana, haga clic en Depurar => Windows => Subprocesos durante la depuración. Espero que te ayude a luchar con ese extraño error.

1

Recibo esta excepción cada vez que no puedo contactar al servidor para realizar la solicitud. Eso podría ser comprensible, pero también veo este error para cualquier solicitud de larga ejecución, incluso cuando llegué al servidor. Las solicitudes que tardan más de 10 segundos provocan sistemáticamente que el cliente falle con esta excepción.

Puede tener algo que ver con el entorno en el que se ejecuta Silverlight. Usted declara que en IE, el error no ocurre, pero sí en Firefox y Chrome. Mi aplicación se está quedando sin navegador. A partir de esto, solo puedo suponer que la pila de clientes todavía aprovecha IE de alguna manera si se ejecuta en IE.

+0

+1 Esto parece consistente con mi propia situación. – jv42

Cuestiones relacionadas