在事务之外显式执行nHibernate查询

时间:2015-01-28 20:05:46

标签: c# sql-server nhibernate transactions active-directory

我一直在从nHibernate那里得到一个看似不一致的错误。

  

无法执行请求的操作,因为链接服务器“ADSI”的OLE DB提供程序“ADSDSOObject”不支持所需的事务接口。

* ADSI只是链接服务器的别名

我知道这是因为SQL服务器上的存储过程用于将信息从活动目录中提取出来。从Active Directory获取属于特定组成员的用户列表是一个相对简单的查询。这样做是为了在应用程序内和报告中使用相同的用户列表。

我的问题是我不知道如何告诉nHibernate不要为这一个查询使用事务,如果这是问题的原因。我有一个事务明确地包装每个Web请求,所以我不知道如何基本上“退出”该事务的特定请求。我已经尝试使用IStatelessSession而不是ISession只用于这一个查询,但我仍然得到错误。我已经验证了抛出异常时无状态会话没有事务,但我仍然收到此错误。

有什么建议吗?

更新 我现在还不完全确定事务是我的问题...我可以从SSMS中的查询窗口显式运行存储过程,包含在提交或回滚的事务中,并且它以任何方式成功返回。当我从nHibernate中运行它时,为什么会抱怨?

0 个答案:

没有答案