加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

工作总结之-----WebService计时器如何叫醒

发布时间:2020-12-17 00:00:17 所属栏目:安全 来源:网络整理
导读:前序 ??????? 工作中往往会用到计时器,此篇中我们关注计时器的失效。由于在项目中webservice的负担较轻,因此决定把计时器放入Web服务中。 实现 ??????? 在web服务中放入一个任务类,其中放入一个计时器。在类初始化方法中启动计时器。另外放一个持久类,类

前序

??????? 工作中往往会用到计时器,此篇中我们关注计时器的失效。由于在项目中webservice的负担较轻,因此决定把计时器放入Web服务中。

实现

??????? 在web服务中放入一个任务类,其中放入一个计时器。在类初始化方法中启动计时器。另外放一个持久类,类中专门放置一个静态任务对象。

??????? 最后,在Global.asax.cs文件中的Application_Start方法中初始化持久对象。这样就实现了一个计时器。

缺点

??????? 这个看似合理的计时器却存在不理想的状况-----最后,计时器停止了。有同学说是因为内存回收了。那么有没有解决之道呢?

解决之道

??????? 在内存回收后,重启计时器即可。我们在Application_End方法中叫醒自身。添加自身的web服务,并且打开自身服务中任意一个服务方法即可。

??????? 在这里,我们不需要纠结鸡生蛋还是蛋生鸡的问题。因为,鸡蛋既然存在鸡一定存在,他们同时产生,假名鸡、蛋。

Config文件设置

??????

<ISCSWebSerice.Properties.Settings>
      <setting name="ISCSWebSerice_localService_HipisDeviceFault" serializeAs="String">
        <value>http://localhost:83/XXXWebService/Y.asmx</value>
      </setting>
    </ISCSWebSerice.Properties.Settings>
上例中只需要修改端口号即可,因为调用的是自身的web服务。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读