0
我有一個引用DLL的Web應用程序。該DLL具有特定的配置值,通常是web.config的一部分。動態切換配置文件(網頁或應用程序配置)
需要在Web應用程序的不同配置下調用此DLL。該DLL是第三方,不能更改。
已經嘗試了以下並失敗。
- 有不同的DLL副本(名爲a.dll,b.dll)並通過反射來加載它。這裏的問題是它仍然會查找web.config而不是a.dll.config。此外,由於在主程序中引用了相同的類型以及反射的程序集,因此它變得瘋狂。
- 使用
AppDomain.CurrentDomain.SetData("WEB_CONFIG_FILE", @"Config\Path")
即時更改配置,並在通話結束後將其切換回來。這裏的問題是,第一次之後,即使我切換,它也不會再加載配置部分。使用ConfigurationManager.RefreshSection(@"configuration\mysection")
強制刷新。這似乎並沒有工作,人們都說這個調用是在NET中的越野車 - 我見過一些建議更新web.config,但這可能不是一個好的選擇,因爲值的切換會發生相當頻繁
有什麼我可以做的嗎?
如果每個調用都創建一個新實例,則超出proc將會工作。由於我的應用流量很低,因此這不應該成爲問題。將嘗試這個並回來。但令人沮喪的是,沒有真正的解決方案來實現諸如即時切換配置。 – fozylet 2012-02-28 16:04:38
@fozylet,使兩個不同名稱的進程,不同的clsids,每個配置一個。然後,每個人都可以重新使用,而無需重新啓動過程。 – Ben 2012-02-28 16:12:06