怎样让wcf一启动就自动执行类里面的一个函数。
一个WCF服务,在里面有一个Timer,每隔一定时间就自动执行一个函数。现在只有当client访问服务时,这个Timer才启动。我想让Timer在宿主一启动就执行,不管是...
一个WCF服务,在里面有一个Timer,每隔一定时间就自动执行一个函数。现在只有当client访问服务时,这个Timer才启动。我想让Timer在宿主一启动就执行,不管是否有client访问。怎么做呢?
展开
1个回答
展开全部
你的宿主再哪里启动的?把Timer放在宿主启动后面呗,不过Timer里面仍然需要定义客户端代理或通道才能访问WCF服务。客户端是不能直接访问WCF服务的。
追问
我的宿主是一个控制台应用程序。我在服务中放了一个Timer,这样每秒钟激发一次,读取数据,存入数据库,并使用发布-订阅机制向client发送数据。按照我原来的做法,必须有client访问服务,计时器才能开始工作。我需要服务一启动,就开始读取数据,不管是否有客户访问。
这是一个监控系统,连接一些串口设备,还有Zigbee设备,不断读取数据。如果要客户机访问才能读数据,就不能达到持续监控的目的。
追答
不建立客户端代理是不能访问WCF的,你可以在Timer中建立一个客户端代理啊,每秒激发也可以不断读取数据的。我说的客户端是相对于WCF服务而言的,不是真正意义上的客户机,这个你应该明白吧。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询