Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从具有web.config的服务调用DLL时,如何读取DLL自己的app.config?_C#_.net 4.5 - Fatal编程技术网

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

C# 从具有web.config的服务调用DLL时,如何读取DLL自己的app.config?,c#,.net-4.5,C#,.net 4.5,我有一个调用DLL的WCF服务。服务有一个web.config,DLL有一个app.config。我已经为DLL编写了一个自定义应用程序配置部分。但是,在DLL中,当我调用ConfigurationManager.GetSection时。。。它尝试读取服务的web.config 如何设置它,使DLL从其app.config读取,而服务从其web.config读取 编辑:当我调试我的服务时,我的DLL似乎被复制到一个奇怪的临时文件夹C:\Windows\Microsoft.NET\Framewor

我有一个调用DLL的WCF服务。服务有一个web.config,DLL有一个app.config。我已经为DLL编写了一个自定义应用程序配置部分。但是,在DLL中,当我调用ConfigurationManager.GetSection时。。。它尝试读取服务的web.config

如何设置它,使DLL从其app.config读取,而服务从其web.config读取

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


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

如果调用来自web服务,或者来自web服务器(如IIS)的任何内容,那么它将只从web.config读取。如果您正在运行console应用程序或任何未在web服务器上运行的应用程序,则将使用app.config。

为什么不将自定义部分添加到web服务的web.config?app.config和web.config本质上是相同的。这都是关于背景的。在web上下文网站、web应用、web服务中运行时,将从web.config读取设置。类库、控制台应用等等都使用app.config文件。简单的方法当然是将相关信息添加到web.config文件中。有什么特别的原因你不能这样做吗?顺便说一句,除非dll是你的,并且你可以自定义代码,否则没有简单的方法可以满足你的要求。dll和服务都是我的。我可以操纵任何一个。我非常希望避免将配置详细信息放在服务的config中