Как узнать, что не так с распределенными транзакциями?

Я много гуглил в последние дни и проверял данные и реестр, но не нашел решения или даже основной причины проблемы:

У нас есть несколько веб-служб WCF, которые взаимодействуют друг с другом (и, наконец, с базой данных SQL Server), используя распределенные транзакции как «Разрешенные» (не «Обязательные»). У нас есть веб-ферма (2008R2, IIS7 с WFF), где на одном узле работает, а на другом нет. Транзакции просто не проходят.

Я написал тестовое приложение, в котором размещена цепочка из трех сервисов, которые ничего не делают, кроме как звонят друг другу. Последний возвращает true. Эта цепочка будет иметь распределенные транзакции на одном компьютере (что можно увидеть, распечатав идентификатор распределенной транзакции), а на другом распределенных транзакций не будет. Однако ошибок нет. Просто не приходит транзакция.

Я проверил диалоги, которые открываются при звонке

dcomcnfg.exe => Компьютер => Мой компьютер => Контроллер распределенных транзакций => Локальный DTC => Свойства

и они абсолютно одинаковы на обеих машинах. Просто чтобы убедиться, что я экспортировал ключи реестра ниже HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC. Единственными различиями между машинами были клавиши KtmRmTmIdentifier и XAKeyCNGKeyDataBlob. Будучи разными машинами, я ожидал, что они будут другими. Все настройки были одинаковыми.

Теперь, когда один и тот же двоичный исполняемый файл работает на одной машине и дает сбой на другой машине, я сильно подозреваю, что виновата настройка нашей машины, но у меня действительно нет возможных вариантов, где искать различия или как выяснить, что не так.

Есть ли у кого-нибудь идеи, что еще я могу проверить или какой тест я могу запустить, чтобы выяснить, в чем проблема?

Дополнительная информация:

Настройки выглядят так:

LocalDTCProperties


person nvoigt    schedule 07.10.2014    source источник
comment
Это немного снято в темноте, но вы активируете доступ к сети DTC в настройках безопасности и в Transcation Manager Communication Allow Inbound, Allow Outbound. В прошлом у меня были проблемы с транзакциями, которые я уже не помню, но эти флажки на вкладке безопасности решают проблему.   -  person mybirthname    schedule 07.10.2014
comment
@mybirthname Я обновил сообщение с текущими настройками на обоих узлах. Прямо сейчас я приму любую подсказку, даже догадки и выстрелы в темноте, потому что у меня нет идей, и это не работает :)   -  person nvoigt    schedule 07.10.2014
comment
Похоже, мой выстрел промахнулся :) Я уже проголосовал за ваш вопрос, надеюсь, кто-то вам поможет!   -  person mybirthname    schedule 07.10.2014
comment
Если вы измените свою транзакцию с «Разрешено» на «Обязательно» и повторите проверку, она завершится ошибкой с записью в журнал исключений/событий, а не молча.   -  person ErnieL    schedule 07.10.2014
comment
Проведя дополнительные тесты, мы обнаружили, что это происходит только тогда, когда мы присоединяем один из наших инспекторов сообщений. Прямо сейчас я не знаю почему, но, по крайней мере, это начало отладки и обходной путь.   -  person nvoigt    schedule 08.10.2014
comment
Любой успех в отладке, мы сталкиваемся с той же проблемой, любые подсказки будут полезны   -  person scorpio    schedule 27.06.2017
comment
@scorpio Оказалось, что наш код по-разному реагировал на разные машины из-за файлов конфигурации отладки на этих машинах. Так что ничего, что могло бы быть полезно для вас, извините :(   -  person nvoigt    schedule 27.06.2017
comment
что вы подразумеваете под файлами конфигурации отладки? возможно, нам тоже нужно проверить   -  person scorpio    schedule 28.06.2017
comment
@scorpio Извините, мой первый комментарий был двусмысленным. Это были файлы, которые наша программа проверяла и действовала соответственно. Самоопределение. Ничего стандартного.   -  person nvoigt    schedule 28.06.2017
comment
о, хорошо .. стоило бы добавить это в ответ и закрыть этот вопрос.   -  person scorpio    schedule 28.06.2017


Ответы (1)


У нас была аналогичная проблема, и мы обнаружили, что пакет адаптера BizTalk CU3 отсутствует, поэтому адаптер WCF работает неправильно.

https://support.microsoft.com/en-us/help/2617150/cumulative-update-package-3-for-biztalk-adapter-pack-2010

person scorpio    schedule 06.07.2017