加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 第一次访问网站需要非常长的时间(总共最多68秒)

发布时间:2020-12-16 06:45:44 所属栏目:asp.Net 来源:网络整理
导读:我有一个ASP.Net应用程序,它第一次访问时需要非常长的时间来启动.我做了一些跟踪,发现这个函数花了57秒: Boolean System.Web.Compilation.WebDirectoryBatchCompiler.CompileNonDependentBuildProviders(ICollection) 而该功能依次调用以下一个6次: Void S
我有一个ASP.Net应用程序,它第一次访问时需要非常长的时间来启动.我做了一些跟踪,发现这个函数花了57秒:

Boolean System.Web.Compilation.WebDirectoryBatchCompiler.CompileNonDependentBuildProviders(ICollection)

而该功能依次调用以下一个6次:

Void System.Web.Compilation.WebDirectoryBatchCompiler.CompileAssemblyBuilder(AssemblyBuilder)

我的问题是System.Web.Compilation.WebDirectoryBatchCompiler.CompileAssemblyBuilder做了什么?我的Web应用程序已经编译好了,我不知道它为什么要在启动时进行任何类型的编译工作.这是正常的吗?有什么事我不知道吗?

解决方法

启动ASP.NET应用程序时会发生相当多的自举.这包括工作进程,加载到AppDomain中的程序集以及当前目录中的文件编译.这个批处理编译过程是每个文件夹,这意味着如果我第一次请求/批处理编译器将扫描文件夹中的受支持类型,编译它们并缓存结果.这只在root /文件夹中完成.我对另一个/ OffRoot文件夹的第一个请求将导致另一个批量编译.

如果您有预编译的站点,运行时仍会执行此类扫描,但确定它不必编译任何内容.

预编译的网站和编译的Web应用程序之间存在重要差异.预编译的网站将提前完成此第一个实例的编译,因此只需将程序集加载到需要的AppDomain中.使用已编译的Web应用程序,您已编译了基本源代码,但视图(.aspx)文件未编译,因此它仍然执行首次编译(动态编译).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读