如何将 Web 应用程序保存在内存中,以便在第一次点击时加载速度更快

How to keep a web application in memory so it can load faster on a first hit

我想阻止每次用户访问网站时加载网络应用程序 - 例如,在一段时间不活动后(网络应用程序终止)

我看到我可以change the Idle Time-out Action in IIS to "Suspend"

实现该目标的好方法是什么?(通过代码实现有什么好处?)

一种老派(阅读:可靠、简单)的方法是编写一个 CRON 作业、计划任务或服务,每隔 x 分钟(其中 x 小于空闲时间)向应用程序发出请求-出)。

您正在寻找在 applicationhost.config 文件中设置为 "AlwaysRunning" 的 IIS 应用程序池的 StartMode。这是说明(摘自 http://developers.de/blogs/damir_dobric/archive/2009/10/11/iis-7-5-and-always-running-web-applications.aspx)。

要设置池,请将 IIS 配置文件 C:\Windows\System32\inetsrv\config\applicationHost.config:

的属性 startMode 设置为 AlwaysRunning
<applicationPools>
    <add name="MyAppWorkerProcess" managedRuntimeVersion="v4.0" startMode="AlwaysRunning" />
</applicationPools> 

在同一文件中,将 AutoStartEnabled 设置为 true:

<sites> 
     <site name="SomeSite" id="1"> 
          <application path="/" serviceAutoStartEnabled="true" />
     </site>
</sites>

或者,您可以通过 IIS 界面执行此操作。打开 IIS,单击左侧栏中的服务器图标,然后单击管理下的配置编辑器图标。从部分下拉列表中,选择 system.applicationHost/applicationPools。那里将有一个集合条目,其中包含您所有应用程序池的计数。单击 Count 中的小省略号,这将打开一个 window,其中列出了所有池。在列表中找到您的应用程序池,确保 AutoStart 为 true 且 startMode 为 AlwaysRunning。重新启动 IIS,您就可以开始了。

在详细信息选项卡上查看任务管理器,它会在用户名列中显示 w3wp.exe 个进程和应用程序池的名称。这是您可以检查以确保它是 运行 的方法。