2013-12-08 44 views
0

我正在使用石英dll在特定的时间计划中完成一些工作。我在全局文件中的application_start中运行计划。它适合我在当地很好,但是当我发布该项目时,它不起作用。对于发布项目,我只是复制并覆盖bin和views文件夹。包含运行代码的正确全局文件存在于服务器中。我应该再次发布还是要做什么?我的申请未正确发布

我该怎么办?

+0

我不知道Quartz.NET太清楚,但是当你的'申请Pool'回收,'application_start'被再次调用,并也许这与你的日程安排有关。 –

+0

所以你的意思是我应该重新启动iis,并再次调用application_start? –

+0

我的意思是,如果你安排了一些东西,然后IIS在任务运行之前回收你的应用程序,它将再次安排它,然后IIS将再次回收该池,所以你的任务从未实际运行。 –

回答

1

IIS通常不启动您的应用程序,直到它必须,即。有人查看一个页面,如果空闲,或者感觉确实如此,它会在一定量后停止应用。您甚至可以将IIS配置为在任意数量的并发工作进程中运行您的应用程序。所以webapps不适合做后台作业,windows服务是。

但作为一种变通方法,你可以配置你的应用程序不断运行:http://weblogs.asp.net/scottgu/archive/2009/09/15/auto-start-asp-net-applications-vs-2010-and-net-4-0-series.aspx

+0

我做了一些研究来选择Windows服务或类似石英的东西,我认为这取决于我们想要用它做的工作。在我的情况下,石英可以解决我的问题,但是您认为重新启动iis会导致调用再次是application_start? –

+0

如果您在该链接中进行了所述更改,则应用程序将始终运行,但不会与Application_Start一起运行,您需要编写自动启动提供程序。 Application_Start仅在请求进来时被调用,AFAIK。 – fejesjoco