【发布时间】:2011-07-19 13:46:54
【问题描述】:
我第一次使用 NServiceBus 并且有一个小而简单的应用程序,用户在其中提交表单,然后将表单字段发送到队列,处理程序收集这些数据并使用 linq 将其写入数据库- to-sql。
就 DBA 而言,组件服务中的任何更改都是完全禁止的,因此我现在正在寻找 DTC 的替代方案(在 DB 服务器上未启用),但使用 AsA_Server 以便消息不要被清除。
我尝试在 IConfigureThisEndpoint 之后删除 AsA_Server 并自己指定配置,但这似乎不起作用(控制台出现,页面加载但没有任何反应,它甚至不会在断点处停止。)AsA_Client 确实有效,但是据我了解,这些消息将在启动时被清除,这是我需要避免的。
有什么建议吗?
谢谢,
OMK
编辑:现在已通过使用将数据库调用包装在抑制事务范围内来解决此问题,这允许在没有环境事务登记的情况下完成数据库工作:
using (TransactionScope sc = new TransactionScope(TransactionScopeOption.Suppress))
{
// code here
sc.Complete();
}
【问题讨论】:
标签: linq-to-sql nservicebus msdtc