我想将计划任务添加到客户端的ASP.NET应用程序中。这些帖子很好地涵盖了这个想法:
我的问题有两部分:首先,如果没有足够的请求活动,IIS会卸载应用程序吗?我的客户端不像stackoverflow那样享受流量,因此他们无法依赖用户请求来保持应用程序“活跃”。显然,我无法在卸载的应用程序中安排任务。
其次,如果是这样,有没有办法阻止IIS在配置之外卸载应用程序或外部“保持活动”请求?我的客户端的主机不允许进行大量的配置调整,并且保持活动的实用程序引入了我试图通过ASP.NET缓存解决方案避免的部署复杂性。
非常感谢。
编辑/结论:鉴于这个问题,TheXenocide的解决方案完全正确。但是,我认为这是一个非常糟糕的问题。偷工减料的诱惑总是迫在眉睫。我已经恢复了理智并告诉我的客户使用网站监控工具来保持网站活跃。此外,尽管有额外的部署麻烦,计划任务仍在Windows服务中进行。
答案 0 :(得分:4)
不幸的是,在更改超时配置的范围之外(我认为可以在Web.config中使用,但我不知道托管服务提供商是什么和不允许的,其中大多数使用中信任)我不喜欢我们相信还有其他方法可以阻止应用程序超越Web请求。您可能尝试的一件事可能比在本地计算机上使用一些保持活动服务更简单,可能是向Session_Start / Session_End添加一些逻辑,以确保始终至少有一个会话处于活动状态;您可以使用应用程序中的WebRequest类来调用您自己的站点,它仍然应该启动一个新会话。
祝你好运,让我们知道你做了什么:)更新:这些细节现在在很大程度上取决于您运行的IIS版本和运行的.NET版本。每个版本的新版本都有配置“始终运行”应用程序的方法。