0

我们已经看过几次了。我确定 MSDTC 存在某种 NHibernate 问题,但是为什么 NserviceBus 不将异常发送到错误队列而不是使主机进程崩溃?我们在 3.2.6 和 3.3.3 中都看到了异常

这也发生在 17 日上午 7:34 进行端点升级之前

日志名称:应用程序源:应用程序错误日期:2012 年 12 月 17 日上午 7:34:20 事件 ID:1000 任务类别:(100) 级别:错误关键字:经典用户:N/A 计算机:411357-SVCS01.daxko。本地描述:错误应用程序名称: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Ç :\Windows\system32\KERNELBASE.dll 75b6c18c-484e-11e2-b05c-0050568e4fb1

日志名称:应用程序源:.NET 运行时日期:2012 年 12 月 17 日上午 7:34:18 事件 ID:1026 任务类别:无级别:错误关键字:经典用户:N/A 计算机:411357-SVCS01.daxko.local描述:应用程序:NServiceBus.Host.exe 框架版本:v4.0.30319 描述:进程因未处理的异常而终止。异常信息:System.InvalidOperationException 堆栈:在 NHibernate.Impl.SessionImpl.Close() 在 NHibernate.Impl.SessionImpl.Dispose(Boolean) 在 NHibernate.Transaction.AdoNetWithDistrubtedTransactionFactory+<>c_DisplayClass1 的 NHibernate.AdoNet.ConnectionManager.Disconnect() 。 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.对象,布尔值)

事件 XML:1026 2 0 0x80000000000000 40359 应用程序 411357-SVCS01.daxko.local 应用程序:NServiceBus.Host.exe 框架版本:v4.0.30319 描述:由于未处理的异常,该进程已终止。异常信息:System.InvalidOperationException 堆栈:在 NHibernate.Impl.SessionImpl.Close() 在 NHibernate.Impl.SessionImpl.Dispose(Boolean) 在 NHibernate.Transaction.AdoNetWithDistrubtedTransactionFactory+<>c_DisplayClass1 的 NHibernate.AdoNet.ConnectionManager.Disconnect() 。 <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.对象,布尔值)

4

1 回答 1

1

我收到了 NServicebus 论坛的回复,其中解释了 NServiceBus 无法处理异常的修复和原因。http://tech.groups.yahoo.com/group/nservicebus/message/17328

谷歌搜索后,它看起来像是 NHibernate ( https://nhibernate.jira.com/browse/NH-2420 ) 中的一个错误,应该在 > 3 个版本中修复!

您的端点崩溃并且没有任何内容发送到错误队列的原因是因为这是后台线程中未处理的异常。

我不确定我们是否可以做些什么来防止这种情况发生!

2012 年 12 月 19 日 04:20,porsche4me1999 写道:在 NHibernate.AdoNet.ConnectionManager.Disconnect()

-- 问候 John Simons NServiceBus

于 2012-12-19T00:06:16.283 回答