2013-11-27 21 views
8

Quando si esegue MassTransit in ASP.NET. Un NullReferenceException viene gettata, come per il problema segnalato qui: Google Discussion GroupMassTransit NullReferenceException in ThreadPoolConsumerPool

Rilevante Particolare
Qualcuno sa come catturare con grazia l'eccezione quando le ricariche AppDomain?

L'analisi dello stack solo va fino alla DLL MassTransit:

NullReferenceException in ThreadPoolConsumerPool 

Locating source for 'd:\BuildAgent-03\work\8d1373c869590c5b\src\MassTransit\Threading\ThreadPoolConsumerPool.cs'. (No checksum.) 
The file 'd:\BuildAgent-03\work\8d1373c869590c5b\src\MassTransit\Threading\ThreadPoolConsumerPool.cs' does not exist. 
Looking in script documents for 'd:\BuildAgent-03\work\8d1373c869590c5b\src\MassTransit\Threading\ThreadPoolConsumerPool.cs'... 
Looking in the projects for 'd:\BuildAgent-03\work\8d1373c869590c5b\src\MassTransit\Threading\ThreadPoolConsumerPool.cs'. 
The file was not found in a project. 
Looking in directory 'C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\crt\src\'... 
Looking in directory 'C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\src\mfc\'... 
Looking in directory 'C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\src\atl\'... 
Looking in directory 'C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\include\'... 
The debug source files settings for the active solution indicate that the debugger will not ask the user to find the file: d:\BuildAgent-03\work\8d1373c869590c5b\src\MassTransit\Threading\ThreadPoolConsumerPool.cs. 
The debugger could not locate the source file 'd:\BuildAgent-03\work\8d1373c869590c5b\src\MassTransit\Threading\ThreadPoolConsumerPool.cs'. 
+1

Si consiglia di aggiungere qui le parti rilevanti della discussione. Le risposte di solo collegamento non sono adatte per questo sito e non credo che le domande solo su link siano molto meglio. – nvoigt

+1

nvoigt - Ho aggiunto il dettaglio pertinente – Paul

+0

Questo è solo un sospetto ma penso che il transito di massa interferisca con il pool di thread di lavoro utilizzato da ASP.NET per gestire le richieste. Abbiamo riscontrato un problema analogo con la chiamata di servizi Web dall'interno dell'applicazione ASP.NET con delegati asincroni: in caso di carico elevato, il pool è stato infine esaurito e le prestazioni sono state terribili. Succede sotto carico elevato o sempre? –

risposta

1

si dovrebbe essere in grado di catturare qualsiasi eccezione non identificata in global.asax: http://msdn.microsoft.com/en-us/library/24395wz3(v=vs.100).aspx

implementare il gestore di errore:

e contrassegnare l'eccezione come gestita:

Server.ClearError(); 
+0

Ho già provato questo e non si attiva – Paul

+0

Se pubblichi l'intera traccia dello stack, forse mostrerà che l'eccezione si verifica prima che l'applicazione abbia la possibilità di cablare il gestore degli errori . In tal caso, potresti essere in grado di ritardare l'inizializzazione della MT fino a dopo che l'app ha avuto la possibilità di eseguire l'installazione. –

+0

no, l'applicazione ha definitivamente superato application_start ed è in esecuzione da un periodo di tempo sostanziale ogni volta che si verifica ciò. – Paul

Problemi correlati