2010-07-25 16 views
5

La seguente riga di codice genera ArgumentNullException in Chrome e Firefox in silverlight. Sto usando HttpWebRequest per inviare un file al server. L'eccezione non si verifica in IE e accade solo quando sto caricando un file più grande (5mb). Sotto IE funziona bene. Non ho visto alcun motivo nella documentazione del perché il codice avrebbe lanciato questa eccezione.Perché EndGetResponse lancia ArgumentNullException?

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

Ecco la traccia dello stack dell'eccezione:

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) 

e l'eccezione 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) 

risposta

1

Ho ottenuto esattamente lo stesso errore strano con HttpWebResponse (ma assolutamente in altre circostanze) pochi giorni fa. Nel mio caso era un problema di multithreading. Sembra thread principale e uno dei thread di lavoro (con delegato) tenta di condividere alcune variabili. Quindi potrei suggerire di provare a spostare tutte le variabili di livello di classe in corpi di metodi (o aggiungere il blocco per le sezioni critiche) e quindi eseguire il debug dell'applicazione con la finestra "Threads" attiva.
Per abilitare questa finestra, fare clic su Debug => Windows => Thread durante il debug. Spero che ti aiuti a lottare con quello strano errore.

1

Ricevo questa eccezione ogni volta che non riesco a raggiungere il server per effettuare la richiesta. Questo potrebbe essere comprensibile, ma vedo anche questo errore per qualsiasi richiesta a lungo termine, anche quando I può raggiungere il server. Le richieste che richiedono più di 10 secondi provocano costantemente il fallimento del client con questa eccezione.

Potrebbe avere qualcosa a che fare con l'ambiente in cui Silverlight è in esecuzione. Si afferma che in IE, l'errore non si verifica, ma lo fa in Firefox e Chrome. La mia applicazione sta esaurendo il browser. Da questo posso solo presumere che lo stack client sfrutta ancora IE in qualche modo se è in esecuzione in IE.

+0

+1 Questo sembra coerente con la mia situazione. – jv42

Problemi correlati