我们要求在ASP.Net应用程序中,应该每天在指定的时间自动调用.Net进程.此过程需要与数据库(sql Server 2005)进行交互,并每天生成计费.我们正在使用共享托管,因此我们无法创建
Windows服务或创建sql Server作业.如果没有用户干预,怎么办?
解决方法
您可以尝试使用
the technique described here,在StackOverflow本身使用(或者至少在某处使用它).简而言之:
- At startup,add an item to the HttpRuntime.Cache with a fixed
expiration.- When cache item expires,do your work,such as WebRequest or what have
you.- Re-add the item to the cache with a fixed expiration.
要使其在特定时间而不是间隔时间运行,您可以降低间隔时间,并简单地修改工作方法来检查时间本身.
正如上面注释的原文中的注释,这不是一个完美的解决方案,没有人会喜欢它适合调度技术(如果有的话).有关其他资格,请参阅When Does Asp.Net Remove Expired Cache Items?.