2012-07-06 85 views

回答

9

你可以有在Global.asax的的Application_Start一个计时器,但因为你需要做的的应用程序定时器启动的请求,这是不是很灵活。有危险在做它虽然这样,通过Haacked详见:

做的更好的办法是有,它作为一个接口,你的ASP.NET Web服务应用和有计划间隔调用您的Web服务的窗口服务:

更多细节在这里:

+3

如果您无法访问服务器(假设它由第三方托管)并且无法安装Windows服务,那么您可以使用ASP.NET缓存来伪造一个服务器:http://www.codeproject.com/Articles/12117 /模拟Windows服务使用ASP-NET-to-run-sc – 2012-07-06 01:56:45

+0

在我的特殊情况下,我可以请求启动应用程序。您的网络服务理念虽然很好,但对于我的问题的一般情况,绝对是一个更合适的答案。非常感谢! – carlbenson 2012-07-07 01:52:50

+0

@ChrisSinclair是100%的现货。你不应该开发,你的心态是你可以完全访问公司资源或客户资源。一切都应该是可移植的和可扩展的,因此ASP.net缓存解决方案是唯一的出路。 – Fandango68 2017-03-07 05:07:18

-1

System.Timers.Timer对象放入Application_Start()Global.asax

http://msdn.microsoft.com/en-us/library/system.timers.timer.aspx

+1

您可以通过22秒打败我,但我实际键入的东西:) – 2012-07-06 01:47:21

+0

不是一个很好的主意。一个ASP.Net应用程序可能已关闭(通常是托管Web服务器的配置,应用程序在一段时间不活动后关闭,并且仅在收到新请求时才开始)。 – 2013-06-26 12:49:11

+0

@MoizTankiwala是正确的。不是一个好主意。大多数Web服务都有超时,您可能无法控制。 Web服务器可能会崩溃。那么什么!?你可能需要在一个远程服务上托管你的ASP.net页面,这个远程服务至少可以让一些服务器不会停止 - 云等等。尽量避免使用服务器内部来完成这项工作。使用缓存! – Fandango68 2017-03-07 05:09:36