2016-11-01 7 views
0

J'ai une application dot net qui, initialement, a été hébergé dans la même boîte avec sa base de données, après la séparation des deux à des boîtes différentes, je continue à obtenir des erreurs avec MSDTCERREUR MSDTC Après la séparation application et base de données à différents serveurs

Cette est le journal d'erreur

la communication avec le gestionnaire de transactions sous-jacent a échoué. à System.Transactions.TransactionInterop.GetOletxTransactionFromTransmitterPropigationToken (Byte [] propagationToken) à System.Transactions.TransactionStatePSPEOperation.PSPEPromote (InternalTransaction tx) à System.Transactions.TransactionStateDelegatedBase.EnterState (InternalTransaction tx) à System.Transactions.EnlistableStates.Promote (InternalTransaction tx) à System.Transactions.Transaction.Promote() à System.Transactions.TransactionInterop.ConvertToOletxTransaction (Transaction transaction) à System.Transactions.TransactionInterop.GetExportCookie (Transaction transaction, Byte [] informations de localisation) à System.Data.SqlClient.SqlInternalConnection.EnlistNonNull (Transaction tx) à System.Data.SqlClient.SqlInternalConnection.EnlistTransaction (transaction Transaction) à System.Data.SqlClient.SqlConnection.EnlistTransaction (transaction Transaction) à System.Data.Linq.SqlClient.SqlConnectionManager.UseConnection (utilisateur IConnectionUser) à System. Data.Linq.SqlClient.SqlProvider.get_IsSqlCe() à System.Data.Linq.SqlClient.SqlProvider.InitializeProviderMode() à System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute (requête d'expression) à System.Data.Linq.DataQuery 1.System.Linq.IQueryProvider.Execute[S](Expression expression) at System.Linq.Queryable.First[TSource](IQueryable 1 la source)

MSDTC Réglage sur les deux machines enter image description here

J'ai aussi ouvert le port 135 et le port 5000-50020 dans les deux pare-feu.

Quel pourrait être le problème que quelqu'un m'aide à demander.

+0

Avez-vous essayé de prendre un pas en arrière peut par exemple votre application effectuer encore une connexion de base à la Base de données et effectuer une lecture simple retourner des disques? – bilpor

Répondre

0
This solved my issue 

J'ai effectué ci-dessous le fichier dans les deux servsers, ont ajouté leur IPS et les noms attribués aux machines que j'ai pu ping les deux machines de l'autre en utilisant les noms attribués, puis modifié le fichier confing DataSource les noms à la place de l'utilisation ips

Ceci est la ligne exacte que je xxx.16.100.1 JpAppServer edited # x hôte client

C:\Windows\System32\Drivers\etc 

    # Copyright (c) 1993-2009 Microsoft Corp. 
    # 
    # This is a sample HOSTS file used by Microsoft TCP/IP for Windows. 
    # 
    # This file contains the mappings of IP addresses to host names. Each 
    # entry should be kept on an individual line. The IP address should 
    # be placed in the first column followed by the corresponding host name. 
    # The IP address and the host name should be separated by at least one 
    # space. 
    # 
    # Additionally, comments (such as these) may be inserted on individual 
    # lines or following the machine name denoted by a '#' symbol. 
    # 
    # For example: 
    # 
    #  102.54.94.97  rhino.acme.com   # source server 
      xxx.16.100.1  JpAppServer    # x client host 

    # localhost name resolution is handled within DNS itself. 
    # 127.0.0.1  localhost 
    # ::1    localhost