WCF交易超时



我有一个通过事务而被Windows Workflow消耗的WCF服务。我有一种使用ef。调用存储过程的方法。

存储过程需要很长时间才能返回结果,我得到以下例外:

该方法调用执行的交易被异步中止。

当我通过ServiceBehaviour属性设置TransactionTimeout时,一切正常:

[ServiceBehavior(TransactionTimeOut="00:02:00")]

但是当TransactionTimeOut通过app.config设置时,它不起作用,我会得到以上例外。

<system.serviceModel>
    <behaviors>
        <serviceBehaviors>
            <behavior>
                <serviceTimeouts transactionTimeout="00:02:00"/>
            </behavior>
        </serviceBehaviors>
    </behaviors>
</system.serviceModel>

我也尝试过<System.transaction>,但我仍会遇到错误。

事先感谢您的帮助。

加上标记后使用超时使用:

<system.serviceMdel>
    <bindings>
        <httpBinding>
            <binding ... receiveTimeout="..." sendTimeout="...">
            </binding>
        </httpBinding>
    </bindings>
</system.serviceMdel>

请参阅此Microsoft文档。

根据Microsoft文档:如果此属性设置在服务配置部分中,则应使用OperationBehaviorAttribute将至少一种相应服务的方法应用于TransactionScopeRequired属性,将其设置为true

我刚刚将[OperationBehavior(TransactionScopeRequired = true)]添加到了服务方法中,然后我在TransactionScope中求职,一切正常。

相关内容

  • 没有找到相关文章

最新更新