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