Позвоните.Net сборке из Biztalk Orchestration: куда поставить конфиг?

Я получил внешнюю сборку.net, включая app.config, которую мне нужно вызвать из Biztalk Orchestration.

Я поместил некоторые записи в сборку.net и вижу, что он не читает или не может найти файл app.config, так как ConfigurationManager.AppSettings.Count равен 0

Я установил сборку.net в GAC, используя gacutil /i path.to.dll, и я не уверен, что происходит с app.config.

Любые идеи о том, как убедиться, что app.config читается, когда я вызываю его из оркестра Biztalk?

Благодарю.

2 ответа

Решение

BizTalk использует свой собственный файл конфигурации с именем btsntsvc.exe.config, который находится в каталоге программных файлов BizTalk. Вы можете добавить свои разделы конфигурации в этот файл и затем сбросить экземпляры хоста biztalk, чтобы получить изменения.

ОДНАКО, это не очень хорошая практика. Это нормально делать, когда у вас есть только один сервер приложений biztalk, но если вам необходимо внезапное масштабирование, у вас есть несколько файлов конфигурации для обслуживания.

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

Подробности о том, как это сделать, можно найти в блоге Ричарда Серотера.

Я на самом деле использую измененную версию здесь.

Я также использую задачу MSBuild для автоматизации развертывания новой конфигурации.

Редактировать: отправленный код для переноса SSOCLient и вызова значений конфигурации здесь

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

XmlDocument doc = new XmlDocument();
doc.Load(Config Path);
string value = doc.SelectSingleNode("/configuration/appSettings/add 
[@key='key']/@value").Value;
Другие вопросы по тегам