Esta é uma pergunta válida? Tenho um aplicativo .NET do Windows que usa MSTDC e está lançando uma exceção:
System.Transactions.TransactionManagerCommunicationException: O acesso à rede para Distributed Transaction Manager (MSDTC) foi desabilitado. Habilite o DTC para acesso à rede na configuração de segurança do MSDTC usando a ferramenta Administrativa dos Serviços de Componentes ---> System.Runtime.InteropServices.COMException (0x8004D024): O gerenciador de transações desativou o suporte para transações remotas / de rede. (Exceção de HRESULT: 0x8004D024) em System.Transactions.Oletx.IDtcProxyShimFactory.ReceiveTransaction (UInt32 propgationTokenSize, Byte [] propgationToken, IntPtr managedIdentifier, Guid & transactionIdentifier, OletxTransactionShimactionLevel & Isolation
Segui o guia Kbalertz para habilitar o MSDTC no PC em que o aplicativo está instalado, mas o erro ainda ocorre.
Eu queria saber se isso era um problema de banco de dados? Se sim, como posso resolver isso?
fonte
Respostas:
Use para windows Server 2008 r2 e Windows Server 2012 R2
Clique em Iniciar , Executar , digite dcomcnfg e clique em OK para abrir os Serviços de Componentes .
Na árvore de console, clique para expandir Serviços de componente , clique para expandir Computadores , clique para expandir Meu computador , clique para expandir Coordenador de transações distribuídas e, em seguida, clique em DTC Local .
Clique com o botão direito em DTC Local e clique em Propriedades para exibir a caixa de diálogo Propriedades de DTC Local .
Clique na guia Segurança .
Marque a caixa de seleção "Acesso ao DTC de rede" .
Por fim, marque as caixas de seleção "Permitir entrada" e "Permitir saída" .
Clique em Aplicar , OK .
Uma mensagem aparecerá sobre como reiniciar o serviço.
Clique em OK e pronto.
Referência: https://msdn.microsoft.com/en-us/library/dd327979.aspx
Observação: às vezes, o firewall da rede no computador local ou no servidor pode interromper sua conexão, portanto, certifique-se de criar regras para "Permitir entrada" e "Permitir conexão de saída" para
C:\Windows\System32\msdtc.exe
fonte
msdtc.exe
é:c:\windows\system32\msdtc.exe
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Security
. Mais informações sobre as propriedades aqui .Você ainda precisa do MSDTC? O escalonamento que você está enfrentando geralmente é causado pela criação de várias conexões em um único TransactionScope.
Se você precisar dele, será necessário ativá-lo conforme descrito na mensagem de erro. No XP:
fonte
Descobri que a melhor maneira de depurar é usar a ferramenta Microsoft chamada DTCPing
Tive problemas com tarifas em nossa antiga rede da empresa e tenho algumas dicas:
Na minha experiência, se o DTCPing é capaz de configurar uma conexão DTC iniciada no cliente e iniciada no servidor, suas transações não são mais o problema.
fonte
Também pode ver aqui como ativar o MSDTC em services.msc do Painel de Controle.
fonte
O MSDTC deve estar habilitado em ambos os sistemas, servidor e cliente.
Além disso, certifique-se de que não haja um firewall entre os sistemas que bloqueie o RPC.
DTCTest é um pequeno aplicativo legal que ajuda você a solucionar quaisquer outros problemas.
fonte
@Dan,
Apenas transações distribuídas - aquelas que envolvem mais de uma única conexão. Certifique-se duplamente de abrir apenas uma única conexão dentro da transação e ela não aumentará - o desempenho também será muito melhor.
fonte