2009-06-24 41 views
1

我听说过Jeff和Joel在播客中讨论了他们所谓的“心跳”,它实质上是创造类似于运行Windows服务在一个网站。我希望能够更深入地了解如何实现这样的事情。有没有人实施过这样的事情,你有什么用途?在Asp.Net中创建“心跳”或Windows服务类功能

谢谢!

回答

3

我在地点组合中找到了答案。我拿出了Jeff Attwood为stackoverlow here以及Code Project article所做的工作,并且创建了一些完全可重用且可以使用IoC工具轻松连接的东西。我已经发布了详细信息here

-1

我们在客户端和服务器之间实现类似的功能,因为我们有Windows窗体客户端,WCF服务充当服务器。

心跳的目的是从服务器端说“我还活着”。

检查这个环节引入了Heartbeat in WCF

+0

死链接已死。 – Gusdor 2015-11-27 16:44:53

0

基本上你使用一个网页揭开序幕的过程...但你把过程可以运行的频率上限。

事情是这样的:

TimeSpan timeSinceLastRun = DateTime.Now.Subtract(lastRunTime); 

if(timeSinceLastRun > interval) { 
    RunCustomProcess(); 
    lastRunTime = DateTime.Now; 
} 

这样你只需要确保偶尔有人(或程序)访问该网页。多次点击页面不会对您的过程产生不利影响。

+0

是储存像lastruntime这样的变量的理想地点...是global.asa唯一的地方吗? – 2009-06-24 14:30:10

+0

可能位于数据库中,或者可能仅仅来自HttpApplication状态。 – 2009-06-26 03:35:01