Asp.net 对于第一个请求,IIS Express localhost的加载速度非常慢

Asp.net 对于第一个请求,IIS Express localhost的加载速度非常慢,asp.net,asp.net-mvc,iis,visual-studio-2015,iis-express,Asp.net,Asp.net Mvc,Iis,Visual Studio 2015,Iis Express,请检查以下我在结束前尝试过的重复内容。 问题: 我创建了一个全新的ASP.NET MVC应用程序,我构建了该应用程序并运行它-->页面加载需要20-30秒 每次我重新构建应用程序,然后尝试加载页面时,即使我在上一次构建之后立即这样做(即,我猜不是空闲超时问题),也需要20-30秒 从昨天开始,我就一直在努力解决这个问题,我读了所有我能找到的关于这个问题的帖子/文章,但运气不好。不过,我不得不承认,我对ASP.NET和web开发基本上是新手,不熟悉IIS配置,所以我可能错过了一些东西 我尝试

请检查以下我在结束前尝试过的重复内容。


问题:

  • 我创建了一个全新的ASP.NET MVC应用程序,我构建了该应用程序并运行它-->页面加载需要20-30秒
  • 每次我重新构建应用程序,然后尝试加载页面时,即使我在上一次构建之后立即这样做(即,我猜不是空闲超时问题),也需要20-30秒
从昨天开始,我就一直在努力解决这个问题,我读了所有我能找到的关于这个问题的帖子/文章,但运气不好。不过,我不得不承认,我对ASP.NET和web开发基本上是新手,不熟悉IIS配置,所以我可能错过了一些东西

我尝试过的事情:

  • 已禁用防病毒和防火墙

  • 通过注释hosts文件中的
    ::1 localhost
    行禁用IPv6。我的主机文件如下所示:

    127.0.0.1       localhost
    # ::1             localhost
    
  • 尝试了不同的浏览器

  • 更改了应用程序URL的端口

  • 将应用程序URL从
    localhost:port
    更改为
    127.0.0.1:port
    ,但当我这样做时,我得到:

    错误的请求-无效的主机名

  • 已卸载并重新安装IIS Express(尝试了多个版本:7.5、8.0和10.0)

  • 已尝试在
    Internet信息服务\万维网服务
    下安装“应用程序开发功能”

  • 启动VS安装程序并运行修复

环境信息:

  • Windows7x64
  • Visual Studio 2015
  • .NET 4.5.2
  • IIS当前启用的功能:我正在使用IIS Express,因此我不确定这是否相关

知道是什么导致了这个问题吗


更新: 我刚试着用Jexus Manager。如图所示从.sln文件加载配置,启动网站并尝试以下方案:

  • 重新启动后浏览网站(这两个操作都在Jexus Manager中)->15-20秒
  • 在VS-->30秒内重建解决方案后浏览网站(使用Jexus)

当您第一次启动Asp.Net MVC应用程序时,会发生很多事情,因此我无法准确指出一件可能导致瓶颈的事情,但请尝试以下建议,这些建议可能会帮助您缩短web应用程序的启动时间:

  • 始终在Visual Studio的发布模式下运行web应用程序(我知道你知道,但还是要把它放进去)
  • 检查web.config文件并确保
    System.web\compilation
    具有
    debug=false
  • 选中
    Global.asax.cs
    文件中的
    Application\u Start
    方法以删除不必要的调用
  • 默认情况下,Razor视图在运行时编译,因此,如果在运行时未对视图进行任何修改,请确保您正在预编译Razor视图,最好使用它来编译视图
  • 例如,使用探查器评测应用程序

  • 我希望这将在启动过程中给你的应用带来一些提升。

    原因如下:

    • 服务器的处理负载很重
    • 特定的工作进程始终处于空闲状态
    • 没有新的处理空间可用
    有一个伪装良好的选项,名为空闲超时操作,可在应用程序池的高级设置中更改。超时操作默认设置为终止,这意味着承载站点的Windows进程将终止。如果发生这种终止,则必须在下次访问时构建站点并启动该过程,从而导致首次加载非常缓慢

    如果你只为你的服务或少数站点运行一个专用服务器,那么这显然会限制你的风格。在这些情况下,将其设置为0是一种方法。其他人则认为这是1740分钟。为什么?它是24小时内最小的素数

    要在Microsoft Windows Server 2012 R2上将空闲超时操作更改为0,请访问IIS并选择为站点服务的应用程序池,然后在右侧菜单中选择高级设置,找到空闲超时(分钟)选项,将其更改为0,然后按OK

    另一种可能的解决方案:安装IIS功能应用程序初始化。然后,它应该与此配置一起工作:

    • 在应用程序池上将启动模式设置为始终运行
    • 在网站级别启用预加载
      True

    您可以尝试直接在IIS Express上运行web应用程序(通过命令行或Jexus Manager等工具)。然后测量这种情况下的性能,并与从VisualStudio获得的值进行比较。否则,您无法判断问题是在IIS Express上还是在Visual Studio上。@LexLi感谢您的建议。我下载了Jexus Manager并试用了它。请检查上面的“更新”部分。您能在Jetus Manager中启用IIS Express日志记录并检查IIS日志文件中记录的请求所用的时间吗?@LexLi这里有,如果需要,这里有一个文本版本:为了测试,我使用了一个带有默认MVC模板的项目(没有添加任何内容)所以我猜第2点和第3点很可能没有关系,但我明天会尝试你的所有建议并提供反馈。谢谢!这一瞥的建议在显示一些数字方面真的很有帮助。这些数字正常吗?仅供参考,这是在发布模式下运行的,这是我在上面的一篇文章中展示的。问题是我最近才开始学习ASP.NET(来自桌面背景)。所以,我正在试验它(在一些教程之后)a