我有一个引用DLL的Web应用程序。此DLL具有某些配置值,通常是web.config的一部分。
需要从Web应用程序在不同配置下调用此DLL。 DLL是第三方,无法更改。
尝试过以下操作但失败了。
AppDomain.CurrentDomain.SetData("WEB_CONFIG_FILE", @"Config\Path")
动态更改配置,并在通话后将其切换回来。这里的问题是,在第一次之后,即使我切换它也不会再次加载配置部分。ConfigurationManager.RefreshSection(@"configuration\mysection")
强制刷新。这似乎不起作用,人们说这个调用在.NET中是错误的我还能做些什么吗?
答案 0 :(得分:2)
在单独的进程中托管DLL并使用COM(或.Net远程处理或Web服务或类似工具)进行通信。
即。使用C#(比如)创建一个主机进程a.exe,它将类公开为COM对象,这些类依次调用DLL方法/类。注册为COM对象。
然后创建相同的b.exe(但使用不同的CLSID)。
现在,您可以为a.exe和b.exe(在不同的文件夹中)配置不同的配置文件,但两者都可以使用DLL服务。
您也可以通过使用两个内部Web应用程序并使用SOAP或其他内容与他们交谈来做类似的事情。
但最重要的是,如果DLL在web.config上运行,则必须将其中至少一个放入单独文件夹中的单独进程中。