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