使用IIS Express启动速度慢

41

我的MVC应用程序在启动时出现问题。

每次我进行更改并启动应用程序时,它都需要很长时间才能启动。

我有大约100行包含“iisexpress.exe”(CLR v4.0.30319:)的内容

我是否必须每次运行应用程序时启动iisexpress?


1
可能是修复IIS初始加载缓慢的问题的重复问题。 - Rowan Freeman
1
相关链接:http://programmers.stackexchange.com/questions/97538/why-after-each-restart-my-local-net-sites-take-time-to-load-for-the-first-time 和 http://programmers.stackexchange.com/questions/54069/why-might-an-asp-net-website-load-slowly - Rowan Freeman
非常感谢,那帮了大忙 :) - Jakobbbb
我已经阅读了很多相关资料,但据我所知并没有太好的解决方案。IIS 应用程序存在很多开销,每次重新启动至少需要几秒钟才能开始运行。 - Rowan Freeman
1
但是是否有可能让IIS保持运行状态?因为每次按F5都会重新启动。 - Jakobbbb
如果您只进行非编译代码更改(例如JavaScript、样式/CSS或视图),则可以只需点击刷新而不是F5来重新运行应用程序。这不会停止和重新启动IIS/IIS Express。 - Will
8个回答

38

禁用日志记录后,我发现有显著的改进。

找到你的项目或计算机的 IIS配置,通常可以在以下位置找到:

  • %userprofile%\documents\iisexpress\config\applicationhost.config
  • .\.vs\config\applicationhost.config
  • VS2019:$(solutionDir)\.vs\{projectName}\config\applicationhost.config

注释或删除文档中的以下两个节点(在某个地方找到)

<add name="HttpLoggingModule" image="%IIS_BIN%\loghttp.dll" />
<add name="HttpLoggingModule" lockItem="true" />

这让我的启动时间缩短了几秒钟。 - undefined

11
我曾经遇到过相同的问题,使用 VS2010 和 VS2015 进行测试。症状是:VS 很快编译、加载符号并在一秒内打开浏览器,但浏览器随后就会停滞 5 至 20 分钟。我的项目很大,但我的笔记本电脑有 16GB 的内存、i7 处理器和 SSD,因此不可能是大小问题。我尝试了这个问题下的所有答案以及这里 Visual Studio debugging/loading very slow

最终,我在这里找到了解决方案https://social.msdn.microsoft.com/Forums/en-US/394f3100-bac2-4b1c-8f8c-8f8c-731226b905d4/painfully-slow-starting-a-web-application-in-visual-studio?forum=visualstudiogeneral

杀毒软件扫描中排除目录 "C:\Windows\Microsoft.NET\Framework"

希望这能为其他人节省大量时间 :)


对于我的环境(VS 2019或VS 2022,Win11),将目录%USERPROFILE%\AppData\Local\Temp\Temporary ASP.NET Files从防病毒扫描中排除掉就解决了问题。 - undefined

8
我曾在Windows 10上使用IIS Express 10和Visual Studio 2015 Update 3时遇到了相同的问题。我进行了几个测试,并尝试使用不同的设置和浏览器(Chrome 54,Edge 38,Opera 41)。浏览器并不重要,但我发现三个因素显著改变了我的原始15秒加载时间:
1.关闭Windows Defender 4.10(从15秒变成12秒) 2.关闭"编辑并继续"功能(从12秒变成6秒) 3.重新开启Windows Defender 4.10(从6秒变成8秒) 4.尝试在无调试模式下运行应用程序(从8秒变为2秒)
因此,如果您愿意放弃"编辑并继续"甚至调试,那么您可以加快进程。
可以在Visual Studio/Tools/Options/Debugging/General/Enable Edit and Continue中关闭"编辑并继续"。
可以使用Ctrl + F5在无调试模式下启动项目。
不建议关闭Windows Defender,但是您可以尝试使用其排除目录功能,这也可能会节省一些时间。

6

我曾遇到类似的问题。当我运行进程监视器时,发现我的融合日志已启用。在禁用融合日志后,IIS Express加载网站的延迟明显减少。


非常感谢,这个问题困扰了我很久。 - imgen

4

IIS Express在您更改和编译代码时应该继续在后台运行。然后,您可以进入调试->附加进程,并找到iisexpress.exe进程并附加到它上面。每次按F5的问题在于,VS会拆除该进程并重新启动它,这需要时间。


4
可能有助于检查以下调试选项:
工具>选项>调试>常规
- 启用“启用我的代码” - 禁用“启用.NET Framework源代码步进” - 禁用“源服务器支持” - 禁用“源链接支持” - 禁用“使用托管兼容性模式” - 禁用“启用编辑并继续”
工具>选项>调试>符号
- 禁用所有符号文件位置 - 设置符号缓存目录 - 选择“仅加载指定的模块” - 单击“指定包含的模块”并禁用所有。

1
在我的情况下,启用“启用仅限我的代码”将启动时间从约2分钟缩短到约6秒。 - mBardos

1

您可以利用ViewEngines.Engines.Clear()来从Global.asax文件中控制它。

protected void Application_Start()
 {
        ViewEngines.Engines.Clear();
        ViewEngines.Engines.Add(new RazorViewEngine());
        AreaRegistration.RegisterAllAreas();
        WebApiConfig.Register(GlobalConfiguration.Configuration);
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
        AuthConfig.RegisterAuth();
  }

0
我在使用Visual Studio 2017和IIS Express启动ASP.NET MVC应用程序时遇到了缓慢的启动问题。我尝试了这个主题中几乎所有的建议,但没有任何显着的应用程序启动速度。唯一有效的方法是使用Ctrl+F5启动应用程序而不进行调试。这将启动时间从10-20秒缩短到几秒钟。如果浏览器窗口保持打开状态,则可以通过刷新浏览器来测试编辑模型或控制器。对视图的更改无需重新构建项目即可反映出来。

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