当从具有web.config的服务调用DLL时,如何读取DLL自己的app.config?

时间:2014-10-28 21:05:44

标签: c# .net-4.5

我有一个调用DLL的WCF服务。该服务有一个web.config,DLL有一个app.config。我感谢this question为DLL编写了一个自定义应用配置部分。但是,在我调用ConfigurationManager.GetSection("...")时,DLL会尝试从服务的web.config中读取。

如何设置它以便DLL在从服务器的web.config读取时从其app.config中读取?

编辑:似乎当我调试我的服务时,我的DLL被复制到一个奇怪的临时文件夹(C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files \ root \ f4d2cdd1 \ a59eb1c1 \ assembly \ dl3 \ 7c7f438f \ b42518b4_f8f2cf01)但我的DLL配置没有。如果我手动复制配置,我可以使用OpenMappedExeConfiguration来阅读它。即使app.config存在,对ConfigurationManager的常规调用也会继续读取web.config。

我无法将配置设置从app.config移动到web.config,因为此DLL在WCF服务和REST服务之间共享。我希望他们能够使用单个DLL,为两者提供核心功能。 DLL应该读取它自己的配置文件而不是web.configs,这样一个服务就不会有另一个服务获得不同的值。

1 个答案:

答案 0 :(得分:0)

如果呼叫来自Web服务,或者是从IIS等Web服务器运行的任何内容,那么它只能从web.config中读取。如果您正在运行控制台应用程序或任何未在Web服务器上运行的应用程序,则将使用app.config。