[英]Persisting a WCF service hosted within a windows service? (i.e. instantiating once and only once)
我有以下問題。 Windows服務中托管有一個WCF服務,如下所示:
sHost = new ServiceHost(typeof(DataService));
_thread = new Thread(new ThreadStart(sHost.Open));
_thread.Start();
其中DataService是解決方案中的WCF服務合同。
WCF服務下方的幾層是單獨程序集中的緩存。 但是,每次與WCF服務建立新的連接/代理時,都會創建該服務的新實例。 這導致在DAL中創建緩存的新實例。 因此,我想做的是擁有WCF服務,因此堆棧中的所有類都只能被實例化一次(由於多重性要求,某些情況除外)。 因此,應該實例化WCF服務並偵聽新的連接,而不是在每次建立新連接時都實例化DataService。
我希望這是有道理的。 我該怎么做呢?
非常感謝,河豚
自己實例化DataService並將實例傳遞給ServiceHost構造函數:
sHost = new ServiceHost(new DataService());
我認為alexdej的答案是正確的,但是沒有看到您的代碼無法評論為什么會得到Null引用異常。
不過,我可以將您指向這些視頻,我僅在2天前完成了這些視頻以幫助學習WCF,並且我相信他們會回答您的問題。
自托管WCF- http://channel9.msdn.com/shows/Endpoint/Endpoint-Screencasts-Self-hosting-WCF-Services/
將WCF托管為Windows服務-http://channel9.msdn.com/shows/Endpoint/endpointtv-Screencast-Hosting-WCF-Services-in-Windows-Services/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.