在我刚接手的一个应用程序中发现了这一行,并没有多大意义。
using (new TransactionScope(TransactionScopeOption.Suppress, new TimeSpan(1,0,0))) {
这会立即发生在 nservicebus 消息处理程序方法中,并覆盖整个处理程序。
它似乎试图抑制环境事务并在一小时后中止。超时到期时会发生什么?我认为这只是选项的组合,并不意味着任何合理。但它会导致发生什么?
在我刚接手的一个应用程序中发现了这一行,并没有多大意义。
using (new TransactionScope(TransactionScopeOption.Suppress, new TimeSpan(1,0,0))) {
这会立即发生在 nservicebus 消息处理程序方法中,并覆盖整个处理程序。
它似乎试图抑制环境事务并在一小时后中止。超时到期时会发生什么?我认为这只是选项的组合,并不意味着任何合理。但它会导致发生什么?
Suppress
表示未使用环境事务;并且实际上,范围内的操作不在事务中执行。这允许您在当前事务之外执行操作,而不受该事务的影响。例如:
using(var trans = new TransactionScope())
{
// do operations within transaction
using(var unscoped = new TransactionScope(TransactionScopeOption.Suppress))
{
// do "immediate" operations
}
// do operations within transaction
// NOTE: No trans.Complete() called
}
// operations performed within "scoped" are not rolled back.
我不确定超时是否真的有意义Suppress