HATA:


System.Transactions.TransactionManagerCommunicationException: 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. (Exception from HRESULT: 0x8004D02B)

   at System.Transactions.Oletx.IDtcProxyShimFactory.ReceiveTransaction(UInt32 propgationTokenSize, Byte[] propgationToken, IntPtr managedIdentifier, Guid& transactionIdentifier, OletxTransactionIsolationLevel& isolationLevel, ITransactionShim& transactionShim)

   at System.Transactions.TransactionInterop.GetOletxTransactionFromTransmitterPropigationToken(Byte[] propagationToken)

   --- End of inner exception stack trace ---



ÇÖZÜM:


Hata anlık MSDTC hatasıdır. İş önce akış numarası ile bulunup retry edilir. Eğer sorun bu şekilde çözülemezse aşağıdaki şekilde makinadaki MSDTC ayarları kontrol edilir ve sonra iş tekrar retry edilir.


Firewall Ayarlarının Kontrol Edilmesi:

  • Denetim Masası/Windows Güvenlik Duvarı dizinine girin,
  • Soldaki menüden "Bir uygulamanın veya özelliğin Windows Güvenlik Duvarını geçmesine izin ver"e tıklayın,
  • Açılan sayfadaki listeden AltiKare.Workflow.Agent ve Dağıtılmış İşlem Düzenleyicisi'ni bulup yanlarındaki "Özel" seçeneğini işaretleyin.


MSTDC Ayarlarının Yapılması:

  • Denetim Masası/Yönetimsel Araçlar dizinine girin,
  • Karşımıza gelen listeden "Bileşen Hizmetleri"ni çift tıklayarak açın,
  • Açılan pencerede aşağıdaki resimde görüldüğü gibi "Bileşen Hizmetleri/Bilgisayarlar/Bilgisayarım/Dağıtılmış İşlem Düzenleyicisi/Yerel DTC" dosyasına sağ tıklayıp "Özellikler"e girin,

       


  • Açılan pencerede Security(Güvenlik) sekmesine tıkladığınızda karşınıza aşağıdaki gibi bir sayfa çıkacak, ayarlarınızın resimde gösterilenlerle aynı olup olmadığını kontrol edin.

       


Hizmetlerin Yeniden Başlatılması

  • Önceki adımdaki gibi Denetim Masası/Yönetimsel Araçlar dizinine girin ve listeden "Bileşen Hizmetleri"ni çift tıklayarak açın,

  • Soldaki menüden "Hizmetler(Yerel)"e tıklayın,
  • Karşınıza çıkan listeden "Dağıtılmış İşlem Düzenleyicisi" ve "Dağıtılmış İşlem Düzenleyicisi için KtmRm" hizmetlerine sağ tıklayıp yeniden başlata tıklayın.