有點背景信息 - 我想在Azure上託管一個RESTful WCF服務。據我所知,除非我的ASP.NET類型託管的角色,我並不真的需要global.asax類(其中有application_start方法)。在IIS上託管的WCF服務的入口方法是什麼?
從基本原型開始,我所需要的就是svc文件及其背後的實現,它會在角色啓動時自動初始化(我的意思是,託管在IIS上)。這非常棒,因爲除了web之外,我不需要額外的代碼.config和我的服務已啓動並正在運行。我不需要創建新的服務主機並開始監聽,等等。我可以將角色和POST消息部署到我的服務中。
問題 - 我有自定義日誌記錄和初始化類實現,我需要初始化時,我的服務啓動。我配置我的服務是一個單身人士,我不知道我應該把我的自定義初始化組件。
沒有明確的應用程序啓動方法和我的服務配置爲單例,我可以假設當第一個請求進來時,我的服務構造函數被調用? (以及我所有的自定義初始化?)。
謝謝柯克。我甚至考慮過把它變成單身人士的唯一原因就是我上面提到的原因.ie。我只想要初始化日誌類的一個實例,即所有請求實例都可以共享...最簡單的方法就是使服務類成爲單例,並重載構造函數來做我想做的事。閱讀更多關於使用單件服務的缺點,我意識到它可能不是最好的主意。儘管我有一個後續問題.. DerivedFactory不會在x.svc.cs中替換我的代碼,是正確的嗎? – kosh
你是對的 - 「DerivedFactory」是一個你必須編寫的新類。如果你想把邏輯放在構造函數中,並且它是有效的,那麼你認爲Singleton模式是確保構造函數被調用一次的簡單方法。只要確保你很高興有一個Singleton! –
太棒了!感謝所有的幫助。 – kosh