Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
asp.net web应用程序启动时间。如何优化?_Asp.net_Web Applications_Iis 7 - Fatal编程技术网

asp.net web应用程序启动时间。如何优化?

asp.net web应用程序启动时间。如何优化?,asp.net,web-applications,iis-7,Asp.net,Web Applications,Iis 7,我们有这个问题,但找不到解决办法。我们有一个引用类似24个DLL的应用程序。当您第一次调用应用程序时(在应用程序因任何原因重置后),开始加载内容需要25-40秒 这就是我们所尝试的: 1.在发布模式下预编译和发布所有内容 2.从bin文件夹中删除pdb 3.将强命名程序集放入GAC 4.将应用程序设置为debug=false 请考虑整个BIN文件夹由24个DLL组成,总大小为28 MB。这些DLL中只有4个是强名称DLL,它们的大小越来越小,为25MB 似乎什么都没有改变。当应用程序启动时会发生

我们有这个问题,但找不到解决办法。我们有一个引用类似24个DLL的应用程序。当您第一次调用应用程序时(在应用程序因任何原因重置后),开始加载内容需要25-40秒

这就是我们所尝试的: 1.在发布模式下预编译和发布所有内容 2.从bin文件夹中删除pdb 3.将强命名程序集放入GAC 4.将应用程序设置为debug=false

请考虑整个BIN文件夹由24个DLL组成,总大小为28 MB。这些DLL中只有4个是强名称DLL,它们的大小越来越小,为25MB

似乎什么都没有改变。当应用程序启动时会发生什么,这是我在任何书籍或论坛/博客/帖子中都找不到的。。。我们可以通过更多的监控来发现问题所在

非常感谢你的帮助,
Marco

看起来您需要使用NGen

本机映像生成器(Ngen.exe) 是一种改进 托管应用程序的性能。 Ngen.exe创建本机映像,该映像 文件是否包含已编译的 处理器特定的机器代码,以及 将它们安装到本机映像中 本地计算机上的缓存。这个 运行时可以使用来自 而是使用即时缓存 (JIT)编译器编译原始文件 大会

使用固定名称预编译网站以进行部署,将解决方案部署到服务器,然后将所有程序集存储在bin中


.

看起来您需要使用NGen

本机映像生成器(Ngen.exe) 是一种改进 托管应用程序的性能。 Ngen.exe创建本机映像,该映像 文件是否包含已编译的 处理器特定的机器代码,以及 将它们安装到本机映像中 本地计算机上的缓存。这个 运行时可以使用来自 而是使用即时缓存 (JIT)编译器编译原始文件 大会

使用固定名称预编译网站以进行部署,将解决方案部署到服务器,然后将所有程序集存储在bin中


好的,谢谢你,丹尼尔。我知道JIT,但我觉得荒谬的是,我有10个这样的应用程序运行在我的生产服务器上,每个应用程序都引用GAC中的5个Dll。JIT编译器是否可能编译应用程序引用的每个DLL,即使它以前是为另一个应用程序编译的?我的意思是:假设应用程序引用GAC中的Test.dll。应用程序B也引用Test.dll。当我第一次访问应用程序A时,JIT获取Test.dll并编译它。当我第一次点击应用程序B时,它也很慢…关于aspnet_compiler.exe,我想这就是Visual Studio 2010发布应用程序时所做的。我错了吗?对不起,你是对的。我完全偏离了轨道。我已经相应地编辑了我的答案。哇,这绝对是一个新概念。对我来说似乎很合适。将测试并让您知道。非常感谢。@Marconline:你尝试过NGen吗?如果是,它是否提高了你的创业绩效?好的,谢谢你,丹尼尔。我知道JIT,但我觉得荒谬的是,我有10个这样的应用程序运行在我的生产服务器上,每个应用程序都引用GAC中的5个Dll。JIT编译器是否可能编译应用程序引用的每个DLL,即使它以前是为另一个应用程序编译的?我的意思是:假设应用程序引用GAC中的Test.dll。应用程序B也引用Test.dll。当我第一次访问应用程序A时,JIT获取Test.dll并编译它。当我第一次点击应用程序B时,它也很慢…关于aspnet_compiler.exe,我想这就是Visual Studio 2010发布应用程序时所做的。我错了吗?对不起,你是对的。我完全偏离了轨道。我已经相应地编辑了我的答案。哇,这绝对是一个新概念。对我来说似乎很合适。将测试并让您知道。非常感谢。@Marconline:你尝试过NGen吗?如果是,它是否提高了你的创业绩效?