首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从事务作用域调用WCF服务方法

从事务作用域调用WCF服务方法
EN

Stack Overflow用户
提问于 2012-11-01 21:02:06
回答 2查看 3K关注 0票数 2

我的代码如下:

代码语言:javascript
运行
复制
    using (TransactionScope scope = TransactionScopeFactory.CreateTransactionScope())
      {

        *// some methodes calls for which scope is needed*
        ...
        ...
        *//than WCF method code for which I don't want transaction to be involved, but if it throws  an exception I don't wish scope to be completed*
        WcfServiceInstance.SomeMethod();
        scope.Complete();
      }

我的问题是,我可以在事务范围内调用WCF服务方法而不会出现任何问题吗?(我不知道服务方法是如何实现的)另外,我希望确保事务不会涉及到wcf服务方法调用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-01 21:27:34

要将事务从客户端应用程序传播到服务,您需要明确地选择加入到服务器和客户端上的事务流。如果您的客户端使用的是事务感知绑定(NetTcp, NetNamedPipe, WSHttp, WSDualHttp, & WSFederation),那么您应该看到一个布尔属性TransactionFlow。将其设置为false将阻止任何事务从您的客户端流向服务器。

您可以使用TransactionFlow属性在操作级别上获得一些额外的控制,但这是一个服务器端属性,所以如果您不能访问服务代码,那么这可能不是一个选项。

如果TransactionFlow属性不能解决您的问题,请告诉我。请理解,在客户机上将其设置为false将阻止任何&所有事务从客户机传给该特定端点绑定的服务。

票数 4
EN

Stack Overflow用户

发布于 2012-11-01 21:27:28

WCF服务方法可以是事务性的,也可以不是事务性的,这取决于它们的实现方式。如果您希望确保您的服务调用不参与事务,请将服务调用包装在“受抑制的”事务作用域中。这将禁止任何环境事务。

代码语言:javascript
运行
复制
using( new TransactionScope(TransactionScopeOption.Suppress) 
{
    WcfServiceInstance.SomeMethod()
}
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13177674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档