Доступ к сети для диспетчера распределенных транзакций (MSDTC) отключен - PullRequest
11 голосов
/ 01 марта 2011

ошибка:

Доступ к сети для диспетчера распределенных транзакций (MSDTC) отключен. Включите DTC для доступа к сети в конфигурации безопасности для MSDTC с помощью инструмента администрирования служб компонентов.

using (System.Transactions.TransactionScope ts = new System.Transactions.TransactionScope())   
11                 {   
12                     try  
13                     {   
14                         foreach (DataRow row in this.dt1.Rows)   
15                         {   
16                             int titleId = int.Parse(row["titleId"].ToString());   
17                             string fname = row["fname"].ToString();   
18                             string lname = row["lname"].ToString();   
19   
20                             if (cmd.Parameters.Count > 0)   
21                                 cmd.Parameters.Clear();   
22   
23                             cmd.Parameters.AddWithValue("@titleId", titleId);   
24                             cmd.Parameters.AddWithValue("@fname", fname);   
25                             cmd.Parameters.AddWithValue("@lname", lname);   
26                             cmd.ExecuteNonQuery();   
27   
28                         }   
29                         con.Close();   
30                         ts.Complete();   
31                     }   
32                     catch (Exception ex)   
33                     {   
34   
35                     }                       
36                 }   
37             }  

Ответы [ 3 ]

37 голосов
/ 20 февраля 2015

Чтобы включить сетевой доступ к MSDTC на Windows Vista / 7/8 Server 2008R2 / 2012 , выполните следующие действия:

  1. Нажмите Пуск , нажмите Выполнить , введите dcomcnfg и затем нажмите OK , чтобы открыть Службы компонентов .

  2. В дереве консоли щелкните, чтобы развернуть Службы компонентов , щелкните, чтобы развернуть Компьютеры , щелкните, чтобы развернуть Мой компьютер , нажмитеразверните Координатор распределенных транзакций , а затем нажмите Локальный код неисправности .

  3. Щелкните правой кнопкой мыши Локальный код неисправности и нажмите Свойства для отображения диалогового окна Local DTC Properties .

  4. Откройте вкладку Security .

  5. Флажок «Сетевой доступ к DTC» флажок.

  6. Наконец, флажок «Разрешить входящий» и «РазрешитьИсходящие « чекбоксы.

  7. Нажмите Применить , OK .

  8. Появится сообщение о перезапуске службы.

  9. Нажмите OK и все.

1 голос
/ 12 июня 2013

Закрыть соединение после завершения транзакции. Метод Complete.

ts.Complete();
con.Close();   

завершенный код

using (System.Transactions.TransactionScope ts = new  Sytem.Transactions.TransactionScope())   
{   
    try  
    {   
        foreach (DataRow row in this.dt1.Rows)   
        {   
            int titleId = int.Parse(row["titleId"].ToString());   
            string fname = row["fname"].ToString();   
            string lname = row["lname"].ToString();   

            if (cmd.Parameters.Count > 0)   
                cmd.Parameters.Clear();   

            cmd.Parameters.AddWithValue("@titleId", titleId);   
            cmd.Parameters.AddWithValue("@fname", fname);   
            cmd.Parameters.AddWithValue("@lname", lname);   
            cmd.ExecuteNonQuery();   
        }   
        ts.Complete(); 
        con.Close();     
    }   
    catch (Exception ex)   
    {   
    }                       
}    
0 голосов
/ 05 октября 2018

InnerException = {"Доступ к сети для диспетчера распределенных транзакций (MSDTC) отключен. Пожалуйста, включите DTC для доступа к сети в конфигурации безопасности для MSDTC с помощью инструмента администрирования служб компонентов."}

Я следовал заПриведенные ниже шаги для решения вышеуказанной проблемы в моей локальной системе

Включение доступа к DTC по сети:

  1. Запустите dcomcnfg при запуске, чтобы открыть инструмент администрирования служб компонентов

  2. Щелкните по локальному DTC и откройте окно свойств

  3. Перейдите на вкладку безопасности и настройте параметры безопасности ниже, чтобы включить сетевой доступ по DTC

    Включены правила брандмауэрасвязанные с координатором распределенных транзакций (TCP-IN / TPC-

Подробнее @ https://rajeevdotnet.blogspot.com/2018/10/wcf-exception-network-access-for.html

...