簡體   English   中英

堅持在Windows服務中托管的WCF服務嗎? (即一次實例化一次)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM