Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MSDTC存在WCF windows服务问题_C#_Wcf_Windows Services_Msdtc - Fatal编程技术网

C# MSDTC存在WCF windows服务问题

C# MSDTC存在WCF windows服务问题,c#,wcf,windows-services,msdtc,C#,Wcf,Windows Services,Msdtc,我有一个.net 3.5 windows服务,它使用在2008应用程序服务器上运行的msmq。此服务与数据库服务器上的sql 2005数据库通信 我在2008 web服务器上从我的aspx页面调用此服务时遇到以下错误: “分布式事务管理器(MSDTC)的网络访问已禁用。请使用组件服务管理工具在MSDTC的安全配置中为网络访问启用DTC。 事务管理器已禁用对远程/网络事务的支持。(HRESULT的异常:0x8004D024) 我遵循了这个指示,但运气不好 当我调试代码时,上面的错误被抛出到我的wi

我有一个.net 3.5 windows服务,它使用在2008应用程序服务器上运行的msmq。此服务与数据库服务器上的sql 2005数据库通信

我在2008 web服务器上从我的aspx页面调用此服务时遇到以下错误:

“分布式事务管理器(MSDTC)的网络访问已禁用。请使用组件服务管理工具在MSDTC的安全配置中为网络访问启用DTC。 事务管理器已禁用对远程/网络事务的支持。(HRESULT的异常:0x8004D024)

我遵循了这个指示,但运气不好

当我调试代码时,上面的错误被抛出到我的windows服务代码中的一行,它试图使用ExecuteOnQuery方法执行存储过程

我错过了什么

仅供参考,web服务器上的my web.config如下所示:

<netMsmqBinding>
    <binding name="NetMsmqBinding_IWcfEmailService" closeTimeout="00:01:00"
        openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
        deadLetterQueue="System" durable="true" exactlyOnce="true"
        maxReceivedMessageSize="5000000" maxRetryCycles="2"
        receiveErrorHandling="Fault"
        receiveRetryCount="5" retryCycleDelay="00:30:00" timeToLive="1.00:00:00"
        useSourceJournal="false" useMsmqTracing="false" queueTransferProtocol="Native"
        maxBufferPoolSize="524288" useActiveDirectory="false">
      <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
          maxBytesPerRead="4096" maxNameTableCharCount="16384" />
      <security mode="None">
        <transport msmqAuthenticationMode="WindowsDomain"
            msmqEncryptionAlgorithm="RC4Stream"
            msmqProtectionLevel="Sign" msmqSecureHashAlgorithm="Sha1" />
        <message clientCredentialType="Windows" />
      </security>
    </binding>
</netMsmqBinding>


您是否也尝试过在db服务器上启用网络访问?您还可以在连接上指定多个选项来控制驱动程序参与事务的方式。

您也尝试过在db服务器上启用网络访问吗?您还可以指定连接上的多个选项来控制驱动程序参与事务的方式。

您需要启用msdtc。见:


您还必须告诉SQL Server,它应该允许连接(远程TCP?)。这可以通过SQL Server外围配置完成。

您需要启用msdtc。见:


您还必须告诉SQL Server,它应该允许连接(远程TCP?)。这可以通过SQL Server表面区域配置完成。

我假设您已为远程访问启用DTC

Administrative Tools –> 
Component Services –> 
My Computer properties –>
MSDTC tab –> 
Security Configuration tab –>
Network DTC Access (checked) 

如果是的话,这里有一个方便的方法。它是以BizTalk为中心的,但概念是相同的。

我假设您已为远程访问启用DTC

Administrative Tools –> 
Component Services –> 
My Computer properties –>
MSDTC tab –> 
Security Configuration tab –>
Network DTC Access (checked) 
如果是的话,这里有一个方便的方法。它以BizTalk为中心,但概念是相同的