iis中寄宿wcf服务,服务采用的是单实例模式
问题1:实例什么时候创建,是在服务启动时候还是第一次使用的时候
问题2:查资料都说wcf实例是在服务停止的时候销毁,那如果服务是寄宿在iis上,如果服务长时间没有访问,iis是否会回收wcf实例对象。
1:如果是通过静态成员变量实现的单例,是在单例类型被第一次访问时
2. 取决于IIS应用池的2个设置:Process Model 的 Idle Time-out 与 Recycling 的 Regular Time Interval ,可以都设置为0
这个单例是整个wcf服务对象的单例,具体内部实现原理我也还不知道,我也是才刚学wcf
设置单例模式的时候是在wcf服务类中添加ServiceBehavior特性来实现的
[ServiceBehavior(InstanceContextMode =InstanceContextMode.Single,//设置实例模式为单例模式 ConcurrencyMode =ConcurrencyMode.Multiple)]//设置并发模式为多线程模式
1。不知道你的单实例长成什么样子,无法判断。
2. IIS有这个设置项 来销毁 “应用程序”,应用程序都会被销毁,里面的东西还会存在么。实验很简单,把Application Start 用日志记录下来。