gpt4 book ai didi

c# - IIS应用程序池回收+ quartz 调度

转载 作者:可可西里 更新时间:2023-11-01 08:09:44 25 4
gpt4 key购买 nike

我在 IIS 7.5 上运行一个 Web 应用程序,它需要偶尔回收(否则内存使用会失控,我正在调查!)。

当它回收时,它实际上不会运行,直到另一个请求进来, quartz 不会运行。

有没有办法让IIS在回收应用程序池后立即自动启动1个工作进程以确保quartz始终在线?

最佳答案

是的!

http://weblogs.asp.net/scottgu/archive/2009/09/15/auto-start-asp-net-applications-vs-2010-and-net-4-0-series.aspx细节非常好,基本上你需要:

  1. 编辑 C:\Windows\System32\inetsrv\config\applicationHost.config 以包括:

    <applicationPools> 
    <add name="MyAppWorkerProcess" managedRuntimeVersion="v4.0" startMode="AlwaysRunning" />
    </applicationPools>
  2. 声明应该为您的站点运行什么作为“预热”

    <sites> 
    <site name="MySite" id="1">
    <application path="/" serviceAutoStartEnabled="true" serviceAutoStartProvider="PreWarmMyCache" />
    </site>
    </sites>
    <serviceAutoStartProviders>
    <add name="PreWarmMyCache" type="PreWarmCache, MyAssembly" />
    </serviceAutoStartProviders>
  3. 使用您想要的任何“预热”逻辑配置您的应用程序:

    public class PreWarmCache : System.Web.Hosting.IProcessHostPreloadClient {
    public void Preload(string[] parameters) {
    // Perform initialization and cache loading logic here...
    }
    }

注意:如果您只需要 w3wp.exe 进程存在,我相信只需要第 1 步。如果您还需要其他项目(例如某些要加载到内存中的东西),那么也可以使用步骤 2 和 3。

关于c# - IIS应用程序池回收+ quartz 调度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11140597/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com