第一次打开应用程序时,应用程序变慢。

3
我用C#开发了一个ASP.NET应用程序。整个应用程序都能正常运行,但问题在于第一次打开应用程序时非常慢。即首页或其他页面加载需要很长时间。但是,当我重新打开该页面时,页面会快速打开,就像我所期望的那样。即使应用程序会话过期并重新登录应用程序,在第一次加载所有页面时也需要很长时间,但从第二次开始打开这些页面时就不会再发生这种情况。所以,有人能告诉我这里出现了什么问题吗?
2个回答

6
该应用程序在第一次请求时进行编译。
请阅读微软的文章
因为ASP.NET将在用户首次请求时编译您的网站,所以您只需将应用程序的源代码复制到生产Web服务器即可。但是,ASP.NET还提供了预编译选项,允许您在部署之前编译您的网站,或在用户请求之前编译它。预编译具有几个优点。它可以改善您的网站在首次请求时的性能,因为在ASP.NET编译网站时不会有滞后时间。预编译还可以帮助您查找可能仅在用户请求页面时才发现的错误。最后,如果在部署之前预编译Web站点,则可以部署程序集而不是源代码。
您可以使用ASP.NET编译器工具(ASPNET_Compiler.exe)预编译Web站点。该工具提供以下预编译选项:
  1. 就地编译 - 该选项执行与动态编译期间相同的编译。使用此选项来编译已部署到生产服务器的Web站点。
  2. 非更新全预编译 - 使用此选项编译应用程序,然后将编译输出复制到生产服务器。所有应用程序代码、标记和UI代码都编译为程序集。占位符文件(如.aspx页面)仍然存在,以便您可以执行特定于文件的任务,例如配置权限,但是文件不包含可更新的代码。要更新任何页面或任何代码,必须再次预编译Web站点并重新部署。
  3. 可更新预编译 - 这类似于非更新全预编译,除了像.aspx页面和.ascx控件这样的UI元素保留其所有标记、UI代码和内联代码(如果有)。在部署后,您可以更新文件中的代码;ASP.NET将检测到文件的更改并重新编译它。请注意,在预编译期间构建到程序集中的代码后端文件(.vb或.cs文件)无法更改,因此您不能更改它而不经过预编译和部署步骤。

但是,您提到如果会话过期,它也很慢。也许您在会话开始时将太多内容加载到内存中。没有更多信息很难做出诊断。

0

在Firebug中检查您的网站,在.NET选项卡中,您将找到页面加载时间较长的部分, 可能存在客户端语言中的某些异常或代码错误。 尽量使用较少的会话,并调试您的代码以澄清没有额外的代码循环。 (抱歉我的英语不好,但希望您明白我的意思)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接