如何保持我的ASP.NET应用程序始终“活着”,如果它是一个坏主意,为什么我不应该这样做?

我最近在我的闪亮的新VPS中部署了一个ASP.NET应用程序,虽然我对VPS可以通过共享托管解决方案提供的一般性能提升感到满意,但我对应用程序的启动时间不满意.

当我的客户第一次点击它时,我的网络应用程序需要相当长的时间才能启动.我没有在调试模式下运行它(在我的web.config中禁用它),它在启动时没有任何实际工作要做 – 我的应用程序启动事件处理程序中没有代码,我没有启动任何额外的线程,没有.我的客户第一次点击我的应用程序需要15-20秒才能响应.后续调用需要1-2秒,除非我等待几分钟让我的应用程序关闭.然后它又回到15-20秒的启动时间.

(我知道我的时间基准是非常不科学的,这些数字应该只是给我的应用程序启动时的性能感觉).

我对ASP.NET的理解是,IIS(在这种情况下为7.0)在第一次运行时编译Web应用程序,然后缓存这些二进制文件,直到Web应用程序发生更改为止.我的理解不正确吗?

那么,在那本书大小的序言之后,这是我的问题:

>我对ASP.NET编译的理解不正确吗?它是如何实际工作的?
>有没有办法可以强制IIS缓存我的二进制文件,或者让我的应用程序无限期地存活?
>如果在我之前的问题中做任何一件事是个坏主意,为什么这是一个坏主意,我还能做些什么来提高启动性能呢?

谢谢!

编辑:看来我的问题是this question的轻微重复(我以为我在这里找到了更好的答案,哈哈).但是,我认为我的问题更加全面,如果没有关闭,除非在这里有更好的,已经提出的问题解决这个问题,我会很感激.

解决方法

IIS还会在给定时间段后关闭您的Web应用程序,具体取决于其配置.我不熟悉IIS7以及在哪里配置它,所以你可能想对如何配置它进行一些研究( starting point?).

这不好吗?取决于您的代码有多好.如果你没有泄漏内存或资源,可能不会.

一个解决方案是precompile your website.这可能是更好的选择.但是,您必须查看它,因为它可能会有不利之处,具体取决于您与网站的互动方式.

相关文章

这篇文章主要讲解了“WPF如何实现带筛选功能的DataGrid”,文...
本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识...
Some samples are below for ASP.Net web form controls:(fr...
问题描述: 对于未定义为 System.String 的列,唯一有效的值...
最近用到了CalendarExtender,结果不知道为什么发生了错位,...
ASP.NET 2.0 page lifecyle ASP.NET 2.0 event sequence cha...