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

时间:2013-11-07 08:41:01

标签: c# asp.net .net sql-server-2008

我使用c#在ASP.NET中开发了一个应用程序。整个应用程序工作正常,但问题是我第一次打开应用程序时运行速度很慢。即花费这么多时间来加载主页或任何其他页面之类的页面。但是,当我重新打开该页面时,该页面会按照我的预期快速打开。即使应用程序获得会话过期并重新登录到应用程序,它也会花费很多时间来第一次加载所有页面,从第2次打开页面时它就不会发生。所以有人能告诉我这里出现的问题是什么。

2 个答案:

答案 0 :(得分:6)

应用程序在第一个请求时编译。

阅读Microsoft的this文章。

  

因为 ASP.NET会根据第一个用户请求编译您的网站,所以您可以   只需将应用程序的源代码复制到生产Web即可   服务器。但是,ASP.NET还提供了预编译选项   允许您在部署之前编译您的网站,或者   在部署之后但在用户请求之前编译它。   预编译有几个优点。它可以提高性能   您的网站首次请求,因为没有滞后时间   ASP.NET编译网站时。预编译也可以帮助您找到   只有在用户请求页面时才会发现的错误。   最后,如果在部署之前预编译网站,则可以   部署程序集而不是源代码。

您可以使用ASP.NET编译器工具(ASPNET_Compiler.exe)预编译网站。提供以下预编译选项的工具:

  1. 就地编译此选项执行动态编译期间发生的相同编译。使用此选项可以编译已部署到生产服务器的网站。
  2. 不可更新的完整预编译使用此命令编译应用程序,然后将编译后的输出复制到生产服务器。所有应用程序代码,标记和UI代码都编译为程序集。占位符文件(如.aspx页面)仍然存在,因此您可以执行特定于文件的任务,例如配置权限,但文件不包含可更新的代码。为了更新任何页面或任何代码,您必须再次预编译该网站并再次部署它。
  3. 可更新预编译这类似于不可更新的完整预编译,但.aspx页面和.ascx控件等UI元素保留所有标记,UI代码和内联代码(如果有)。部署后,您可以更新文件中的代码; ASP.NET将检测对文件的更改并重新编译它。请注意,在预编译期间内置于程序集中的代码隐藏文件(.vb或.cs文件)中的代码,因此,如果不再次执行预编译和部署步骤,则无法对其进行更改。

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

答案 1 :(得分:0)

在.net选项卡中的firebug中检查您的网站,您会发现页面的哪一部分需要花费很多时间来加载, 客户端语言中可能存在一些异常或一些代码错误。 尽量少用会话 并调试您的代码,以澄清没有额外的代码循环 (对不起英语不好,但希望你有我的观点)