I server IaaS clonati da un modello in cui DTC era già installato contengono identificatori duplicati per DTC, che impediscono la comunicazione tra i nodi.

Problema

Si verifica un errore del servizio di gestione IaaS e nel registro viene visualizzato il messaggio riportato di seguito.

Communication with the underlying transaction manager has failed. ---> System.Runtime.InteropServices.COMException: The MSDTC transaction manager was unable to pull the transaction from the source transaction manager due to communication problems. Possible causes are: a firewall is present and it doesn't have an exception for the MSDTC process, the two machines cannot find each other by their NetBIOS names, or the support for network transactions is not enabled for one of the two transaction managers. (Comunicazione con il gestore della transazione sottostante non riuscita. ---> System.Runtime.InteropServices.COMException: il gestore della transazione MSDTC non è stato in grado di richiamare la transazione dal gestore della transazione di origine a causa di problemi di comunicazione. Possibili cause: presenza di un firewall in cui non è stata impostata un'eccezione per il processo MSDTC, le due macchine non possono individuarsi mediante il rispettivo nome NetBIOS, oppure il supporto di transazioni di rete non è abilitato per uno dei due gestori di transazione.)

Causa

Quando si clona un server IaaS in cui DTC è già installato, il clone contiene lo stesso identificatore univoco per DTC dell'elemento padre. La comunicazione tra le due macchine non riesce.

Soluzione

  1. Sul clone aprire un prompt dei comandi come Amministratore.
  2. Eseguire il comando riportato di seguito.

    msdtc -uninstall

  3. Riavviare il clone.
  4. Aprire un altro prompt dei comandi ed eseguire il comando riportato di seguito.

    msdtc -install manager-service-host-FQDN