App config 从Biztalk业务流程调用.Net程序集:将配置放在何处?

App config 从Biztalk业务流程调用.Net程序集:将配置放在何处?,app-config,biztalk,orchestration,App Config,Biztalk,Orchestration,我获得了一个外部.net程序集,其中包括我需要从Biztalk业务流程调用的app.config 我已将一些日志记录到.net程序集中,并且可以看到它没有读取或找不到app.config文件,因为ConfigurationManager.AppSettings.Count为0 我使用gacutil/I path.to.dll将.net程序集安装到GAC,我不确定app.config会发生什么情况 当我从Biztalk业务流程调用app.config时,有没有关于如何确保它被读取的想法 谢谢。Bi

我获得了一个外部.net程序集,其中包括我需要从Biztalk业务流程调用的app.config

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

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

当我从Biztalk业务流程调用app.config时,有没有关于如何确保它被读取的想法


谢谢。

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

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

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

理查德·塞罗特的博客中详细介绍了如何进行这项工作

我实际上使用了一个修改过的版本

我还使用MSBuild任务自动部署新配置


编辑:发布用于包装SSOCLient和调用配置值的代码

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

XmlDocument doc = new XmlDocument();
doc.Load(Config Path);
string value = doc.SelectSingleNode("/configuration/appSettings/add 
[@key='key']/@value").Value;