我創建了一個WCF服務,它從數據庫中讀取並返回結果。出於性能原因,我想緩存服務啓動時的表(這發生在Windows服務OnStart中)。但是有作爲構造在WCF中沒有這樣的事情(?右),所以最好的事情,我想出了是創建一個init()函數,並調用類似如下:WCF初始化代碼
protected override void OnStart(string[] args)
{
mServiceHost = new ServiceHost(typeof(DLSService.DLSService), new Uri("http://localhost:8000/DLS"));
mServiceHost.AddServiceEndpoint(typeof(DLSService.IDLSService), new BasicHttpBinding(), "ServicesHost");
((DLSService.DLSService)mServiceHost.SingletonInstance).Init();
mServiceHost.Open();
}
但使用SingletonInstance和鑄造到正確的類型對我來說似乎不是那麼重要。 有沒有更好的方法來實現構造函數在WCF中的功能?
好點。使用一個服務實例,您將很難編寫錯誤處理。如果服務器處於故障狀態,則需要在每次呼叫時編寫恢復代碼。通過每個通話服務,您只需關閉故障服務並重新啓動一個服務即可。 – Peter