我们已经看过几次了。我确定MSDTC存在某种NHibernate问题但是为什么NserviceBus不会将异常发送到错误队列而不是崩溃Host进程?我们在3.2.6和3.3.3中都看到了例外
这也发生在我们在上午7:34进行端点升级之前的第17天
日志名称:应用程序 来源:应用程序错误 日期:12/17/2012 7:34:20 AM 事件ID:1000 任务类别:(100) 等级:错误 关键词:经典 用户:N / A. 计算机:411357-SVCS01.daxko.local 描述: 错误应用程序名称:NServiceBus.Host.exe,版本:3.2.6.0,时间戳:0x4ffd66f8 错误模块名称:KERNELBASE.dll,版本:6.1.7601.17651,时间戳:0x4e21213c 异常代码:0xe0434352 故障偏移:0x000000000000cacd 错误进程id:0x2200 错误应用程序启动时间:0x01cddc556e2ef369 错误应用程序路径:D:\ store \ endpoints \ Production \ OnlineRegistrationEndpoint \ NServiceBus.Host.exe 错误模块路径:C:\ Windows \ system32 \ KERNELBASE.dll 报告ID:75b6c18c-484e-11e2-b05c-0050568e4fb1 事件Xml: 1000 2 100 0x80000000000000 40360 应用 411357-SVCS01.daxko.local NServiceBus.Host.exe 3.2.6.0 4ffd66f8 KERNELBASE.dll 6.1.7601.17651 4e21213c e0434352 000000000000cacd 2200 01cddc556e2ef369 d:\店\端点\生产\ OnlineRegistrationEndpoint \ NServiceBus.Host.exe C:\ WINDOWS \ SYSTEM32 \ KERNELBASE.dll 75b6c18c-484e-11E2-B05C-0050568e4fb1
日志名称:应用程序 来源:.NET Runtime 日期:12/17/2012 7:34:18 AM 事件ID:1026 任务类别:无 等级:错误 关键词:经典 用户:N / A. 计算机:411357-SVCS01.daxko.local 描述: 应用程序:NServiceBus.Host.exe 框架版本:v4.0.30319 描述:由于未处理的异常,进程终止。 异常信息:System.InvalidOperationException 堆: 在NHibernate.AdoNet.ConnectionManager.Disconnect() 在NHibernate.Impl.SessionImpl.Close() at NHibernate.Impl.SessionImpl.Dispose(Boolean) 在NHibernate.Transaction.AdoNetWithDistrubtedTransactionFactory +<> 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.OletxTransactionManager.ShimNotificationCallback(System.Object,Boolean) 在System.Threading._ThreadPoolWaitOrTimerCallback.PerformWaitOrTimerCallback(System.Object,Boolean)
事件Xml: 1026 2 0 0x80000000000000 40359 应用 411357-SVCS01.daxko.local 应用程序:NServiceBus.Host.exe 框架版本:v4.0.30319 描述:由于未处理的异常,进程终止。 异常信息:System.InvalidOperationException 堆: 在NHibernate.AdoNet.ConnectionManager.Disconnect() 在NHibernate.Impl.SessionImpl.Close() at NHibernate.Impl.SessionImpl.Dispose(Boolean) at NHibernate.Transaction.AdoNetWithDistrubtedTransactionFactory +<> 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.TransactionStatus) 在System.Transactions.Oletx.OletxTransactionManager.ShimNotificationCallback(System.Object,Boolean) 在System.Threading._ThreadPoolWaitOrTimerCallback.PerformWaitOrTimerCallback(System.Object,Boolean)
答案 0 :(得分:1)
我从NServicebus论坛得到了一个回复,解释了NServiceBus无法处理异常的修复和原因。 http://tech.groups.yahoo.com/group/nservicebus/message/17328
使用Google搜索后,看起来它是NHibernate(https://nhibernate.jira.com/browse/NH-2420)中的一个错误,应该已经修复了> 3个版本!
您的端点崩溃并且没有任何内容发送到错误队列的原因是因为这是后台线程中的未处理异常。
我不确定我们能做些什么来防止这种情况发生!
2012年12月19日04:20,porsche4me1999写道: 在NHibernate.AdoNet.ConnectionManager.Disconnect()
- 问候 约翰西蒙斯 NServiceBus