如何在运行IISRESET后立即重新启动ASP.NET应用程序?

时间:2009-09-18 10:13:33

标签: c# asp.net iis

我有Windows任务,它在午夜00:00重启IIS。在我的应用程序中有一个后台线程,它在02:00左右运行全局刷新。

我的问题是应用程序仅在浏览器的第一个请求时启动。这可能不会发生很长一段时间,全局刷新可能会在启动时间较晚。

有没有办法在没有先浏览Web应用程序的情况下启动应用程序?

4 个答案:

答案 0 :(得分:4)

理想情况下,您应该将此类维护任务与Web应用程序分开(作为计划任务或Windows服务)。

但是,如果你真的需要这样做,可以创建一个批处理文件:

iisreset /restart
"C:\Program Files\GnuWin32\bin\wget.exe" -O nul http://www.myapp.com/default.aspx

然后在12:00将此批处理文件作为计划任务运行。这将重新启动IIS并预热您的应用程序。

您可以从

获取GNU wget.exe
  

WGET for Windows (SourceForge)

答案 1 :(得分:3)

重新启动IIS后,您可以使用其他任务访问您的网站。

但是,我看不出为什么你的IIS工作进程中有一个线程正在进行维护。如果流程因某种原因而死亡(例如 - 由于网站应用程序池中的回收配置),工作将无法完成。最好从单独的进程执行此操作,例如Windows服务或计划的Windows任务。

答案 2 :(得分:1)

您不应该在IIS Web应用程序中安排任何线程 - 因为IIS有一些逻辑可以在不使用时回收工作进程和应用程序。最好将其作为单独的应用程序运行(单独安排)。

答案 3 :(得分:0)

您还可以使用任务管理器调用的Powershell脚本。以下是我们用来“预热”SharePoint服务器的简单六行script

您可以为基本的.NET应用程序重新调整用途或找到类似的脚本。