Tengo un inconveniente con el MSDTC transaction manager en un cliente con un Windows Server 2016 Standard. Actualmente puede hacer acciones tales como editar unidades, plazas y objetos de estructura pero no puedo crearlos. En el caso de puestos puedo crear pero solo puedo guardarlos, no guardar y procesar. Viendo las preguntas anteriores respecto al tema revise configuraciones del firewall y lo baje para evitar que este impidiera algo, agregue los hosts en el netbios y otras configuraciones recomendadas para resolver el problema que aun no me han sido efectivas. Algo curioso que vi en el servidor es que en la instalación de los servicios de los roles no incluyen las opciones de DTC para incoming y outgoing transactions y según investigue el servidor las maneja de otra manera. En las estadísticas del DTC si se ve al momento que ejecuto una transacción y esta es abortada y queda reportado el evento. Alguien sabe de los permisos de este servidor en particular o si hubiese alguna configuración adicional al estándar de instalación ya que en otras instalaciones no he tenido este inconveniente tomando en cuenta que la mayoría de servidores han sido 2012. Este es el log del error mostrado en Evolution 1.10.1.0. 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) ErrorsHelpAbout 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) System.Data.Entity.Core.EntityException: The underlying provider failed on Open. ---> 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 --- at System.Transactions.TransactionInterop.GetOletxTransactionFromTransmitterPropigationToken(Byte[] propagationToken) at System.Transactions.TransactionStatePSPEOperation.PSPEPromote(InternalTransaction tx) at System.Transactions.TransactionStateDelegatedBase.EnterState(InternalTransaction tx) at System.Transactions.EnlistableStates.Promote(InternalTransaction tx) at System.Transactions.Transaction.Promote() at System.Transactions.TransactionInterop.ConvertToOletxTransaction(Transaction transaction) at System.Transactions.TransactionInterop.GetExportCookie(Transaction transaction, Byte[] whereabouts) at System.Data.SqlClient.SqlInternalConnection.GetTransactionCookie(Transaction transaction, Byte[] whereAbouts) at System.Data.SqlClient.SqlInternalConnection.EnlistNonNull(Transaction tx) at System.Data.SqlClient.SqlInternalConnection.Enlist(Transaction tx) at System.Data.ProviderBase.DbConnectionInternal.ActivateConnection(Transaction transaction) at System.Data.ProviderBase.DbConnectionPool.PrepareConnection(DbConnection owningObject, DbConnectionInternal obj, Transaction transaction) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.Open() at System.Data.Entity.Infrastructure.Interception.InternalDispatcher`1.Dispatch[TTarget,TInterceptionContext](TTarget target, Action`2 operation, TInterceptionContext interceptionContext, Action`3 executing, Action`3 executed) at System.Data.Entity.Infrastructure.Interception.DbConnectionDispatcher.Open(DbConnection connection, DbInterceptionContext interceptionContext) at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.<>c__DisplayClass1.<execute>b__0() at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func`1 operation) at System.Data.Entity.Core.EntityClient.EntityConnection.Open() --- End of inner exception stack trace --- at System.Data.Entity.Core.EntityClient.EntityConnection.Open() at System.Data.Entity.Core.Objects.ObjectContext.EnsureConnection(Boolean shouldMonitorTransactions) at System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func`1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess) at System.Data.Entity.Core.Objects.ObjectQuery`1.<>c__DisplayClass7.<getresults>b__5() at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func`1 operation) at System.Data.Entity.Core.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption) at System.Data.Entity.Core.Objects.ObjectQuery`1.<system.collections.generic.ienumerable<t>.GetEnumerator>b__0() at System.Data.Entity.Internal.LazyEnumerator`1.MoveNext() at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source) at Aseinfo.Infrastructure.Base.Entity.EntityServiceBase`2.GetEntityById(IdT id, Expression`1[] includes) in C:\work\a3e0cbded2a6d4b3\Infrastructure\Base\Entity\EntityServiceBase.cs:line 309 at Aseinfo.VH4.Infraestructura.Services.Workflow.RutaAutorizacionDiscoverer.GetRutaAutorizacion(IAuthorizationWorkflowManagedEntity entity) in C:\work\a3e0cbded2a6d4b3\VH4\Infraestructura\Services\Workflow\RutaAutorizacionDiscoverer.cs:line 79 at Aseinfo.Infrastructure.Base.Extensions.EntityFrameworkExtensions.TieneFlujoConfigurado[T](T entityObject, IUnityContainer unityContainer) in C:\work\a3e0cbded2a6d4b3\Infrastructure\Base\Extensions\EntityFrameworkExtensions.cs:line 200 at Aseinfo.Infrastructure.Base.Entity.EntityServiceBase`2.DoInsert(T entity, Boolean saveChanges, Boolean bypassWorkflowInitialization) in C:\work\a3e0cbded2a6d4b3\Infrastructure\Base\Entity\EntityServiceBase.cs:line 856 at Aseinfo.VH4.Estructura.Controllers.CentroCostoController.SaveCentroCosto(CentroCosto entity, Nullable`1 codigoCompania, Nullable`1 codigoAreaFuncional, Boolean inserting, Nullable`1 iniciaFlujo) in C:\work\a3e0cbded2a6d4b3\VH4\Estructura\Controllers\CentroCostoController.cs:line 553 at Aseinfo.VH4.Estructura.Controllers.CentroCostoController.Create(CentroCosto entity, Nullable`1 codigoCompania, Nullable`1 codigoAreaFuncional, Nullable`1 iniciaFlujo) in C:\work\a3e0cbded2a6d4b3\VH4\Estructura\Controllers\CentroCostoController.cs:line 232 at lambda_method(Closure , ControllerBase , Object[] ) at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) at System.Web.Mvc.Async.AsyncControllerActionInvoker.<begininvokesynchronousactionmethod>b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<invokeactionmethodfilterasynchronouslyrecursive>b__3d() at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<invokeactionmethodfilterasynchronouslyrecursive>b__3f() at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<invokeactionmethodfilterasynchronouslyrecursive>b__3f() at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<invokeactionmethodfilterasynchronouslyrecursive>b__3f() at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<invokeactionmethodfilterasynchronouslyrecursive>b__3f() at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<invokeactionmethodfilterasynchronouslyrecursive>b__3f() at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<>c__DisplayClass2b.<begininvokeaction>b__1c() at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<begininvokeaction>b__1e(IAsyncResult asyncResult) asked 04 Apr '17, 16:26 jpinto Fernando Paz ♦♦ |
Ocupa el DTCPING para determinar exactamente la raiz del problema .... revisa esta respuesta link answered 04 Apr '17, 16:32 sbarahona ♦♦ 1
Utilice en DTCPing y si encontré el problema. Al parecer el cliente solo clonó el servidor por lo que el CID era el mismo. Investigué y la solución fue desinstalar el MSDTC e instalar de nuevo. En el siguiente link encontré la solución. http://www.wadewegner.com/2007/08/warning-the-cid-values-for-both-test-machines-are-the-same/
(06 Apr '17, 09:48)
jpinto
|