MVC 3: el administrador de transacciones de MSDTC no pudo extraer la transacción de la fuente

Estoy usando MVC 3 con Entidades, ahora he usado la siguiente línea de códigos de mi controlador

<code>        using (var scope = new TransactionScope())
        {
            _myRepository.DeleteFM1(id);
            _myRepository.DeleteFM2(id, name);
            scope.Complete();
        }
</code>

y dentro de miDeleteFM2 El método que pasa a ser mi método definido en la clase Entidad es el siguiente:

<code>    public void DeleteFM2(int id, string name)
    {
        var data= _repositoryMD.Fetch().Where(mColl => mColl.Col1 == id);

        if (data!= null)
        {
                //insert here is giving some error MSDTC error !
                // here I prepare a message using the '**data**'
                _repositoryHistory.Insert(name, message, "FM2", "Delete", dateTime);


                _repositoryMD.Attach(data);
                _repositoryMD.Delete(data);
                _repositoryMD.SaveChanges();
            }
        }
    }
</code>

y tengo una clase separada donde he definido el método Insertar como

<code>   public bool Insert(string realName, string logMessage, string tableName, string changeType, DateTime dateTime)
    {
        var history = new History
        {
            ModifiedBy = realName,
            ChangeType = changeType,
            DateModified = dateTime,
            LogMessage = logMessage,
            TableName = tableName
        };

        _repositoryHistory.Add(history);
        _repositoryHistory.SaveChanges();

        return true;
    }
</code>

Después de insertar esta línea de código en el método anterior DeleteFM2

<code>      _repositoryHistory.Insert(name, message, "FM2", "Delete", dateTime);
</code>

Recibo este error, sin esta línea, mi código funciona bien, también he usado esta línea en todos mis otros métodos, incluso cuando allí usé Transaction Scope, pero aún no parece entender el problema aquí. Por favor ayuda. Gracias

El proveedor subyacente falló en la apertura.

System.Transactions.TransactionManagerCommunicationException: La comunicación con el administrador de transacciones subyacente ha fallado. ---> System.Runtime.InteropServices.COMException: El administrador de transacciones de MSDTC no pudo extraer la transacción del administrador de transacciones de origen debido a problemas de comunicación. Las posibles causas son: un firewall está presente y no tiene una excepción para el proceso MSDTC, las dos máquinas no se pueden encontrar por sus nombres NetBIOS, o el soporte para transacciones de red no está habilitado para uno de los dos administradores de transacciones. (Excepción de HRESULT: 0x8004D02B) en System.Transactions.Oletx.IDtcProxyShimFactory.ReceiveTransaction (UInt32 propgationTokenSize, Byte [] propgationToken, IntPtr managedIdentifier, Guid y transactionIdentifier, OletxTransactionIsolationLevel y isolationLevel, ITransactionShim y transactionShim) en System.Transactions.TransactionInterop.GetOletxTransactionFromTransmitterPropigationToken (byte [] propagationToken) --- final de seguimiento de pila de excepción --- en System.Transactions.TransactionInterop.GetOletxTransactionFromTransmitterPropigationToken (byte [] propagationToken) en System.Transactions.TransactionStatePSPEOperation.PSPEPromote (InternalTransaction tx) en System.Transactions.TransactionStateDelegatedBase.EnterState (InternalTransaction tx) en System.Transactions.EnlistableStates.Promote (InternalTransaction tx) en System.Transactions.Transaction.Promote () en System.Transactions.TransactionInterop.ConvertToOletxTransaction (Transaction transaction) en System.Transactions.TransactionInte rop.GetExportCookie (transacción de transacción, byte [] paradero) en System.Data.SqlClient.SqlInternalConnection.GetTransactionCookie (transacción de transacción, Byte [] whereAbouts) en el estado de contacto. SqlClient.SqlInternalConnection.Enlist (Transaction tx) en System.Data.SqlClient.SqlInternalConnectionTds.Activate (Transaction transaction) en el campo de actividad en el estado de la actividad. ) en System.Data.ProviderBase.DbConnectionFactory.GetConnection (DbConnection owningConnection) en System.Data.ProviderBase.DbConnection. .EntityConnection.OpenStoreConnectionIf (openCondition Boolean, DbConnection storeConnectionToOpen, DbConnection ori ginalConnection, String exceptionCode, String intentOperation, Boolean & closeStoreConnectionOnFailure)

Mis configuraciones de FireWall

Respuestas a la pregunta(6)

Su respuesta a la pregunta