10

ho ospitato il mio Webapp sul server 1 e il mio database sul server di 2Il gestore delle transazioni MSDTC è stato in grado di staccare la transazione dal gestore delle transazioni di origine a causa di problemi di comunicazione

Ma im ottenendo seguente errore

"La comunicazione con il gestore delle transazioni sottostante non è riuscita."

Ho cercato su google e ho trovato un post che ha detto che è la questione del DTC (Distributed Transaction) ho attivato DTC su Server2 (DB server) e fatto un'eccezione di esso in Firewall.

enter image description here

enter image description here

Ma ancora lo stesso errore.

Ecco la traccia completa dello stack

Messaggio: System.Transactions.TransactionManagerCommunicationException: La comunicazione con il gestore delle transazioni sottostante non è riuscita. ---> System.Runtime.InteropServices.COMException: il gestore transazioni MSDTC non è stato in grado di estrarre la transazione dal gestore transazioni di origine a causa di problemi di comunicazione. Le possibili cause sono: un firewall è presente e non ha un'eccezione per il processo MSDTC, le due macchine non possono trovarsi reciprocamente con i loro nomi NetBIOS o il supporto per le transazioni di rete non è abilitato per uno dei due gestori di transazioni. (Eccezione da HRESULT: 0x8004D02B) a System.Transactions.Oletx.IDtcProxyShimFactory.ReceiveTransaction (UInt32 propgationTokenSize, Byte [] propgationToken, IntPtr managedIdentifier, Guid & transactionIdentifier, OletxTransactionIsolationLevel & isolationLevel, ITransactionShim & transactionShim) a System.Transactions.TransactionInterop. GetOletxTransactionFromTransmitterPropigationToken (Byte [] propagationToken)

consiglio gentilmente

+0

A volte ho lo stesso problema in Windows 2088 e non so come risolverlo. A volte succede. :( – rsan

+1

Hai provato a configurarlo anche sul server delle applicazioni? Stai configurando sia Inbound/Outbound. Ha risolto il mio problema. –

risposta

1

Cose da controllare:

  • Hai eseguito questa configurazione su entrambi i server?
  • Entrambi i server sono membri dello stesso dominio?
  • Hai controllato il registro eventi?
14

Abbiamo avuto la stessa identica situazione e più di una volta. Ogni volta, è stato uno dei seguenti modi:

  1. L'indirizzo IP del DNS per il server è obsoleto (come detto in un messaggio di errore: "due macchine non possono trovare l'altro con i loro nomi NetBIOS") . È possibile verificare se questo è il caso provando ping servername da un server a un altro nel prompt dei comandi. Se il ping per nome fallisce e ping per IP ha successo (o ping per nome restituisce l'IP sbagliato), allora dovresti parlare con gli amministratori di sistema per dare un'occhiata a DNS/DHCP.

  2. I server vengono creati come un'immagine di server preconfigurato (ad esempio, se si lavora con macchine virtuali e invece di eseguire una nuova installazione per ciascuno dei server, è sufficiente clonare l'immagine).Questo è un problema perché DTC ha un "identificatore" interno - e in caso di clonazione delle immagini entrambe le tue installazioni ora hanno lo stesso ID DTC e non saranno in grado di comunicare tra loro. La soluzione è semplicemente disinstallare e installare nuovamente il DTC.

Spero che sia d'aiuto.

+1

# 2 ha funzionato perfettamente! Grazie! –

+0

# 1 è successo con due reti diverse. grazie –

Problemi correlati