2009-04-07 8 views
2

J'ai un service Windows .NET 3.5 qui utilise msmq sur le serveur d'applications 2008. Ce service communique avec la base de données SQL 2005 sur le serveur de base de données.Problème de service Windows WCF avec MSDTC

Am obtenir une erreur mentionné ci-dessous à appeler ce service de ma page ASPX sur 2008 serveur web:

« L'accès au réseau pour le Gestionnaire de transactions distribuées (MSDTC) a été désactivé S'il vous plaît activer DTC pour l'accès au réseau dans la sécurité. configuration pour MSDTC à l'aide de l'outil d'administration des services de composants Le gestionnaire de transactions a désactivé sa prise en charge des transactions à distance/réseau (Exception de HRESULT: 0x8004D024) "

J'ai suivi cette instruction, mais pas de chance.

Lorsque je débogue le code, l'erreur ci-dessus est lancée sur une ligne dans mon code de service Windows où il tente d'exécuter la procédure stockée à l'aide de la méthode ExecuteNonQuery.

Que manque-t-il ici?

Pour votre information, mon web.config sur le serveur Web ressemble à:

<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> 

Répondre

-1

Avez-vous essayé permis l'accès au réseau sur le serveur db ainsi? Il existe également plusieurs options sur la connexion que vous pouvez spécifier pour contrôler la manière dont le pilote participe aux transactions.

1

Vous devez activer msdtc. Voir:

How do I enable MSDTC on SQL Server?

Vous devez également dire à SQL Server qui devrait autoriser les connexions (TCP à distance?). Cela peut être fait à partir de la configuration de surface de SQL Server.

0

Je suppose que vous avez activé le DTC pour l'accès à distance ...

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

Si oui, voici un DTC troubleshooting guide à portée de main. C'est centré sur BizTalk, mais les concepts sont les mêmes.

Questions connexes