我們有一個動態組合的應用程序,用戶可以在其中添加服務和操作。此應用程序安裝在服務器羣集上。從數據庫中讀取system.servicemodel部分
由於嚮應用程序添加服務涉及太多的寫入web.config
,我想知道是否有可能從數據庫中讀取system.servicemodel
部分而不是web.config
。
似乎微軟的配置實施與其存儲的位置非常緊密。
我們有一個動態組合的應用程序,用戶可以在其中添加服務和操作。此應用程序安裝在服務器羣集上。從數據庫中讀取system.servicemodel部分
由於嚮應用程序添加服務涉及太多的寫入web.config
,我想知道是否有可能從數據庫中讀取system.servicemodel
部分而不是web.config
。
似乎微軟的配置實施與其存儲的位置非常緊密。
沒有「開箱即用」的方式來做到這一點。但是,這是可能的。
幾英尺以下,Configuration
類使用FileStream
實例,它實際上可以使用任何Stream
。這個特定的步驟可以用接口的自定義實現(許多在那裏實現的屬性和方法)來代替。
特別有趣的是OpenStreamForRead
和OpenStreamForWrite
,兩者都返回Stream
實例。在那裏,您可以將邏輯從數據庫中將配置節的XML抽取到ConfigurationSection
實例中,並將ConfigurationSection
實例作爲XML抽取到數據庫中。
下一步是創建一個Configuration
類的實例。然而,在這裏我們必須變髒,因爲它的構造函數永遠不會離開System.Configuration
王國。需要使用反射來達到和使用它。我建議實施IInternalConfigConfigurationFactory
來包裝反射魔法。
Configuration Create(Type typeConfigHost,
params object[] hostInitConfigurationParams);
作爲第一個參數傳遞實現的配置主機的類型。
當我們有Configuration
實例後,我們可以使用它自定義的ServiceHost
,ChannelFactory<T>
和DuplexChannelFactory<T>
。
不是我所知道的 - 我已經嘗試了幾件事,對它進行了相當多的研究 - 沒有取得太大的成功。你當然可以一起構建你自己的WCF配置系統,並在代碼中構建你的綁定等 - 但是我沒有找到任何將標準.NET配置部分放入數據庫的方法,並且.NET從這裏解釋了它: - (沒有提供者模型或任何似乎支持:-( – 2011-03-07 15:30:16
@marc_s:你有沒有試過類似於以下提供的內容?請分享您在研究中發現的事實? – 2011-03-07 21:34:17
@rest wing:確定 - 發送給我一個e - 郵件 - 這是在我的個人資料.... – 2011-03-10 21:39:39