2

我有一个外部 .net 程序集,包括我需要从 Biztalk Orchestration 调用的 app.config。

我已经将一些日志记录到 .net 程序集中,并且可以看到它没有读取或找不到 app.config 文件,因为 ConfigurationManager.AppSettings.Count 为 0

我使用 gacutil /i path.to.dll 将 .net 程序集安装到 GAC,但我不确定 app.config 会发生什么。

当我从 Biztalk Orchestration 调用 app.config 时,有什么想法可以确保它被读取吗?

谢谢。

4

2 回答 2

12

BizTalk 使用它自己的名为 btsntsvc.exe.config 的配置文件,该文件位于 BizTalk 程序文件目录中。您可以将配置部分添加到此文件中,然后反弹 biztalk 主机实例以获取更改。

但是,这不是一个好习惯。当您只有一个 biztalk 应用程序服务器时可以这样做,但如果您需要突然向外扩展,您需要维护多个配置文件。

推荐的方法是使用 SSO 来存储特定于应用程序的配置数据,因为它是 BizTalk 的配置存储解决方案,因此始终可用。我总是使用这种方法并且从来没有遇到过任何问题(尽管有一些与开发和管理相关的开销)。

有关如何执行此操作的详细信息,请参阅Richard Seroter 的博客。

我实际上在这里使用了修改后的版本。

我还在这里使用 MSBuild 任务来自动部署新配置。

编辑:发布了用于包装 SSOCLient 并在此处调用配置值的代码

于 2012-04-11T14:41:21.753 回答
0

您也可以使用自定义解决方案。在您的外部项目中创建一个函数,它将配置文件作为 XML 文档加载,您可以从配置文件中获取值。

XmlDocument doc = new XmlDocument();
doc.Load(Config Path);
string value = doc.SelectSingleNode("/configuration/appSettings/add 
[@key='key']/@value").Value;
于 2017-08-24T05:53:31.787 回答