我有一个 .net 3.5 windows 服务,它使用在 2008 应用程序服务器上运行的 msmq。该服务与数据库服务器上的 sql 2005 数据库通信。
在 2008 Web 服务器上从我的 aspx 页面调用此服务时,我收到下面提到的错误:
“分布式事务管理器 (MSDTC) 的网络访问已被禁用。请使用组件服务管理工具在 MSDTC 的安全配置中启用 DTC 进行网络访问。事务管理器已禁用其对远程/网络事务的支持。(来自 HRESULT 的异常: 0x8004D024)"
我遵循了这个指示,但没有运气。
当我调试代码时,在我的 Windows 服务代码中的一行尝试使用 ExecuteNonQuery 方法执行存储过程时会抛出上述错误。
我在这里想念什么?
仅供参考,我在网络服务器上的 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>