Transactions 什么是;“IsTransactional”;你的意思是什么?

Transactions 什么是;“IsTransactional”;你的意思是什么?,transactions,nservicebus,Transactions,Nservicebus,我正在创建一个web应用程序,它将使用NServiceBus发送消息,并写入数据库。我希望这是一个原子操作,即一个事务,因此我将代码包装在一个using new TransactionScope()语句中 配置NServiceBus时,可以调用ISTransaction方法。何时将“false”传递给此方法,何时“true”合适?IsTransaction(true)表示所有传入的消息都将在transactionscope内处理 对于发送(传出消息),您需要创建自己的事务作用域,以确保与数据

我正在创建一个web应用程序,它将使用NServiceBus发送消息,并写入数据库。我希望这是一个原子操作,即一个事务,因此我将代码包装在一个using new TransactionScope()语句中

配置NServiceBus时,可以调用ISTransaction方法。何时将“false”传递给此方法,何时“true”合适?

IsTransaction(true)表示所有传入的消息都将在transactionscope内处理

对于发送(传出消息),您需要创建自己的事务作用域,以确保与数据库一致。通常,将实际处理(如写入数据库)移动到后端进程是一个好主意。如果您这样做,NServiceBus将为您处理重试、异常管理等事情

更多信息请点击此处:


只是澄清一下:我们在web服务中收到了可能超过2MB的大型二进制附件。因此,我们将数据临时存储在数据库中,并在消息中发送Id。类似于yes的东西听起来是个不错的设计,仅供参考,NServiceBus 3.0将有一个“databus”功能,为您提供开箱即用的功能。我不认为有必要将对db和bus.send的写入设置为在同一个tx中,以便您可以抑制任何事务以获得更好的性能