在写一个简单的监控服务程序时,被windows7的session0机制隔离折磨了很久。原因是自己对XP和wind7系统之间的区别不是很了解,首先要了解session0和session1 - sessionN工作时在XP和windows7之间的区别,才能知道自己写服务程序在XP下运行很正常却在wind7上不正常。
对于会话区别
可参考文章http://jankie.blog.51cto.com/6640/94765
两者不同的是:
1、在Windows Xp/2003中第一个用户登陆后 Session 0中会启动应用程序进程 和服务应用程序进程,第 二个用户登陆后会产生Sessino 1会话 Session1中包含的是仅是应用程序,第三个用户登 陆后的Session 2和Session 1相同也是仅包括应用程序进程。
2、在Windows Vista中第一个用户登陆后的Session是1仅产生应用程序,而Session0仅用于启动服务应用程序,第二个用户会产生 Session 2与Session1相似。
比较有效的作法参考 ,这是微软官方给出的突破session0限制的教程例子。
http://msdn.microsoft.com/zh-cn/library/ee663074.aspx
网上的例子大多也是参照着个来改的。觉的有个中文用C#改写的还不错,也可以参考一下,至于其它的资料就不用费功夫瞎折腾了,
因为都是景德镇人翻译老外改写的。
http://www.cnblogs.com/gnielee/archive/2010/04/07/session0-isolation-part1.html
其实,微软更希望我们用.net平台下的C#语言WCF技术实现的Windows服务程序,微软给出了用WCF机制创建一个windows程序的模板,
微软告诉我们用WCF技术我们可以以轻松的实现交互式服务程序,以及实现不同sessions程序通信的方法,
WCF给出了一个更加安全的通信渠道和机制。对于WCF技术,这里不多解绍,可以参考下面这几篇。
http://www.cnblogs.com/stulife/archive/2011/04/14/2016118.html
http://hi.baidu.com/xyz136299110/item/bf1c9a187ee0895ff0090e23
http://hi.baidu.com/zhou8237436/item/5f3e407b5f45ca27d7a89ce9