MSDTC - ошибка при попытке установить безопасное соединение (автономно) - PullRequest
1 голос
/ 03 августа 2009

Прежде всего, я не знаю, возможно ли это, но позвольте мне описать мой сценарий.

У меня есть набор служб WCF, база данных SQL Server 2008, все из которых работают на Windows Server 2008. Все это прекрасно работает, когда я подключен к локальной сети, однако я собираюсь использовать этот блок для демонстрации, Я хотел бы, чтобы он работал в автономном режиме (т.е. не подключен к какой-либо сети).

Когда я пытаюсь сделать это в автономном режиме, база данных SQL Server работает (я могу получить данные). Однако, когда я пытаюсь вставить данные в область транзакции из служб WCF, на стороне клиента я получаю исключение ошибки связи. Проверяя журналы событий Windows, я вижу, что в строке «MSDTC обнаружена ошибка при попытке установить безопасное соединение с системой».

Кто-нибудь знает, что нужно установить на DTC, чтобы это работало

Ответы [ 2 ]

1 голос
/ 20 ноября 2009

В контексте произошедшего ошибка теперь имеет смысл.

Проблема заключалась в том, что где-то в одном из приложений, развернутых на сервере, мы ссылались на жестко закодированное имя DNS, которое было недоступно для этого сервера (так как оно было автономным). Из того, что я понимаю, DTC попытался выполнить транзакцию, не смог установить адрес по имени компьютера, и именно там он был разбомблен. Поскольку приложение представляло собой службу WCF, ошибка была довольно хорошо скрыта, но в конечном итоге мы отследили ее, включив трассировку службы.

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

0 голосов
/ 13 августа 2009

Это может быть связано со строкой подключения, которую службы WCF используют для подключения к базе данных. Попробуйте использовать источник данных =. или Data Source = localhost, чтобы убедиться, что вы используете петлевой сетевой адаптер (127.0.0.1).

На компьютере с Windows работает брандмауэр? Является ли сервер частью домена?

Я бы также посоветовал взглянуть на диалог настроек безопасности MS DTC (плагин Component Services MMC). Попробуйте установить для «Transaction Manager Communication» значение «Authentication Required» и отметьте большинство других опций в качестве базовой линии.

...