NServiceBus.Host.exe аварийно завершает работу из-за необработанного исключения

Мы видели это несколько раз. Я уверен, что есть какая-то проблема NHibernate с MSDTC, однако почему NserviceBus не отправляет исключение в очередь ошибок вместо сбоя процесса Host? Мы видели исключение как в 3.2.6, так и в 3.3.3.

Это также произошло 17-го числа, прежде чем мы выполнили обновление конечной точки в 7:34 утра.

Имя журнала: Источник приложения: Дата ошибки приложения: 17.12.2012 7:34:20 КОД события: 1000 Категория задачи: (100) Уровень: Ошибка Ключевые слова: Классический Пользователь: Н/Д Компьютер: 411357-SVCS01.daxko. local Описание: Имя сбойного приложения: NServiceBus.Host.exe, версия: 3.2.6.0, отметка времени: 0x4ffd66f8 Имя неисправного модуля: KERNELBASE.dll, версия: 6.1.7601.17651, отметка времени: 0x4e21213c Код исключения: 0xe0434352 Смещение ошибки: 0x0000000000000c идентификатор процесса: 0x2200 Время запуска сбойного приложения: 0x01cddc556e2ef369 Путь сбойного приложения: D:\store\endpoints\Production\OnlineRegistrationEndpoint\NServiceBus.Host.exe Путь сбойного модуля: C:\Windows\system32\KERNELBASE.dll Идентификатор отчета: 75b6c18c-484e -11e2-b05c-0050568e4fb1 Event Xml: 1000 2 100 0x80000000000000 40360 Приложение 411357-SVCS01.daxko.local NServiceBus.Host.exe 3.2.6.0 4ffd66f8 KERNELBASE.dll 6.1.7601.1 7651 4e21213c e0434352 000000000000cacd 2200 01cddc556e2ef369 D:\store\endpoints\Production\OnlineRegistrationEndpoint\NServiceBus.Host.exe C:\Windows\system32\KERNELBASE.dll 75b6c18c-55fc-484e-51e0-b00

Имя журнала: Источник приложения: .NET Дата выполнения: 17.12.2012 7:34:18 Идентификатор события: 1026 Категория задачи: Нет Уровень: Ошибка Ключевые слова: Классический Пользователь: Н/Д Компьютер: 411357-SVCS01.daxko.local Описание: Приложение: NServiceBus.Host.exe Framework Версия: v4.0.30319 Описание: Процесс был прерван из-за необработанного исключения. Информация об исключении: System.InvalidOperationException Stack: at NHibernate.AdoNet.ConnectionManager.Disconnect() at NHibernate.Impl.SessionImpl.Close() at NHibernate.Impl.SessionImpl.Dispose(Boolean) at NHibernate.Transaction.AdoNetWithDisstrubtedTransactionFactory+‹>c_DisplayClass1.b_0(System.Object, System.Transactions.TransactionEventArgs) в System.Transactions.TransactionCompletedEventHandler.Invoke(System.Object, System.Transactions.TransactionEventArgs) в System.Transactions.TransactionStatePromotedAborted.EnterState(System. Transactions.InternalTransaction) в System.Transactions.InternalTransaction.DistributedTransactionOutcome(System.Transactions.InternalTransaction, System.Transactions.TransactionStatus) в System.Transactions.Oletx.RealOletxTransaction.FireOutcome(System.Transactions.TransactionStatus) в System.Transactions.Oletx.OutcomeEnlistment .InvokeOutcomeFunction(System.Transactions.TransactionStatus) в System.Transactions.Oletx.Olet xTransactionManager.ShimNotificationCallback(System.Object, Boolean) в System.Threading._ThreadPoolWaitOrTimerCallback.PerformWaitOrTimerCallback(System.Object, Boolean)

Событие Xml: 1026 2 0 0x80000000000000 40359 Приложение 411357-SVCS01.daxko.local Приложение: NServiceBus.Host.exe Framework Версия: v4.0.30319 Описание: Процесс был прерван из-за необработанного исключения. Информация об исключении: System.InvalidOperationException Stack: at NHibernate.AdoNet.ConnectionManager.Disconnect() at NHibernate.Impl.SessionImpl.Close() at NHibernate.Impl.SessionImpl.Dispose(Boolean) at NHibernate.Transaction.AdoNetWithDisstrubtedTransactionFactory+‹›c_DisplayClass1.‹EnlistInDistributedTransactionIfNeeded›b_0(System.Object, System.Transactions.TransactionEventArgs) в System.Transactions.TransactionCompletedEventHandler.Invoke(System.Object, System.Transactions.TransactionEventArgs) в System.Transactions.TransactionStatePromotedAborted.EnterState (System.Transactions.InternalTransaction) в System.Transactions.InternalTransaction.DistributedTransactionOutcome(System.Transactions.InternalTransaction, System.Transactions.TransactionStatus) в System.Transactions.Oletx.RealOletxTransaction.FireOutcome(System.Transactions.TransactionStatus) в System.Transactions. Oletx.OutcomeEnlistment.InvokeOutcomeFunction(System.Transactions.TransactionStat us) в System.Transactions.Oletx.OletxTransactionManager.ShimNotificationCallback(System.Object, Boolean) в System.Threading._ThreadPoolWaitOrTimerCallback.PerformWaitOrTimerCallback(System.Object, Boolean)


person Adam    schedule 18.12.2012    source источник
comment
К какой БД вы подключаетесь? Журнал трассировки MSDTC что-нибудь говорит? Вы также можете включить трассировку из app.config.   -  person Adam Fyles    schedule 18.12.2012
comment
Мы используем SQL Server 2008 R2. Не уверен насчет журналов трассировки, посмотрю на них.   -  person Adam    schedule 19.12.2012


Ответы (1)


Я получил ответ от форумов NServicebus, в котором объясняется исправление и причина, по которой NServiceBus не может обработать исключение. http://tech.groups.yahoo.com/group/nservicebus/message/17328

После поиска в Google это похоже на ошибку в NHibernate ( https://nhibernate.jira.com/browse/NH-2420 ), который должен был быть исправлен в > 3 версиях!

Причина, по которой ваша конечная точка дала сбой и ничего не отправляется в очередь ошибок, заключается в том, что это необработанное исключение в фоновом потоке.

Я не уверен, что мы можем что-то сделать, чтобы этого не произошло!

19 декабря 2012 г., 04:20, porsche4me1999 написал: at NHibernate.AdoNet.ConnectionManager.Disconnect()

-- С уважением, Джон Саймонс NServiceBus

person Adam    schedule 19.12.2012
comment
Через 2 дня после обновления NHibernate проблема больше не повторялась. - person Adam; 20.12.2012