【发布时间】:2011-08-19 17:36:34
【问题描述】:
我为我们的一个客户端构建了一个 Windows 服务,它从数据库中收集所有更改/新的行,将它们转换为 CSV,然后 FTP 每天晚上将它们上传到某个地方。现在事实证明,他们无权安装或运行 Windows 服务(这是一个仅限 Web 路径的托管解决方案)。
我认为修改 Windows 服务代码以在 ASP.Net 进程中运行并从 Global.asax 实例化很容易(我过去曾这样做过,从 MVC 项目中托管 WCF 服务)。我们在 ASP.Net 4.0 上,使用 Web 表单,这个任务每晚午夜(或其他配置的时间)运行 Quartz 和 OpenPG。
我的老板担心在长时间没有人访问网站的情况下托管进程休眠或卸载。我很确定这不会发生,但我不确定。
这会像我想的那样工作吗,或者以这种方式实现它会有一些问题吗?
谢谢!
编辑:我知道你“可以”(创建一个对象并调用一个不会阻止 Application_Start 执行的方法,该方法会触发计时器或后台线程或其他东西并在后台运行代码)但这是个好主意ASP.Net 托管进程会休眠/杀死它正在运行的线程吗?如果是这样,我可以生成一个新线程(创建我自己的线程,或者从池中消耗一个)并让它无限运行而不会被杀死?
【问题讨论】:
标签: asp.net windows-services scheduled-tasks global-asax