2010-09-29 5 views
1

Я пытаюсь реализовать транзакцию с каркасом сущностей 4. Из того, что я прочитал, приведен правильный код. SaveChanges работает нормально, но как только я попал в первый вызов ExecuteFunction я получаю следующее исключение:проблема с транзакцией с инфраструктурой сущностей 4

основной поставщик не удалось на Open. ---> System.Transactions.TransactionManagerCommunicationException: Доступ к сети для распределенного Оператор транзакций (MSDTC) отключен . Пожалуйста, включите DTC для доступ к сети в конфигурации безопасности для MSDTC с использованием . Службы административного администрирования .

Я зарегистрировался на сервере базы данных, и я не вижу службу под названием Distributed Transaction Manager, но я вижу диспетчер распределенных транзакций и запускается. Я не уверен, что мне нужно изменить, чтобы это работало. Кто-нибудь знает? Благодарю.

Вот код.

using (var h = new WhaleEntities(ConnectionHelper.DBConnectString)) 
{ 
    using (TransactionScope ts = new TransactionScope()) 
    { 
     h.Sites.AddObject(s); 
     h.SaveChanges(SaveOptions.DetectChangesBeforeSave); 
     retval = s.SiteID; 

     h.ExecuteFunction("UpdateSiteInterfaceList", new ObjectParameter("pSiteID", retval), new ObjectParameter("pList", "10")); 
     h.ExecuteFunction("UpdateSiteInterfaceRequiredList", new ObjectParameter("pSiteID", retval),new ObjectParameter("pList", "Email")); 
     h.ExecuteFunction("UpdateSiteInterfaceAlwaysShownList", new ObjectParameter("pSiteID", retval),new ObjectParameter("pList", "10")); 
     h.ExecuteFunction("UpdateSiteInterfaceAlwaysRequiredList",new ObjectParameter("pSiteID", retval),new ObjectParameter("pList", "Email")); 

     ts.Complete(); 

     //changes must be accepted manually once transaction succeeds. 
     h.AcceptAllChanges(); 
    } 
} 

ответ

Смежные вопросы