2009-04-07 2 views
2

У меня есть служба Windows .net 3.5, которая использует msmq, запущенную на сервере приложений 2008 года. Эта служба связывается с базой данных sql 2005 на сервере базы данных.Проблема с Windows windows windows с MSDTC

Am получает ошибку, упомянутую ниже по призванию этой услуги с моей страницы ASPX на 2008 вебе-сервере:

«Доступ к сети для диспетчера распределенных транзакций (MSDTC) отключена Пожалуйста, включите DTC для доступа к сети в безопасности. конфигурации для MSDTC с помощью инструмента администрирования служб компонентов. Менеджер транзакций отключил поддержку удаленных/сетевых транзакций. (Исключение из HRESULT: 0x8004D024) «

Я выполнил эту инструкцию, но не повезло.

Когда я отлаживаю код, выше ошибка бросается в строке в моем служебном коде Windows, где пытается выполнить хранимую процедуру с использованием метода ExecuteNonQuery.

Что мне здесь не хватает?

FYI, мой 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> 

ответ

-1

вы пробовали включен доступ к сети на сервере БД, а? Также есть несколько вариантов подключения, которое вы можете указать, чтобы контролировать, как водитель участвует в транзакциях.

1

Необходимо включить msdtc. См:

How do I enable MSDTC on SQL Server?

Вы должны также сказать SQL Server, что она должна позволить соединения (удаленный TCP?). Это можно сделать из конфигурации области поверхности SQL Server.

0

Я предполагаю, что вы включили DTC для удаленного доступа ...

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

Если это так, вот удобный DTC troubleshooting guide. Это BizTalk, но концепции одинаковы.