You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 6应用部署至IIS后,WebApplication.Run启动后长时间无响应

ASP.NET迁移至.NET 6.0后IIS启动延迟4分钟问题排查求助

我们刚将一个ASP.NET应用迁移至.NET 6.0并部署在IIS 10中,自迁移后每次启动应用时,部署的应用会出现约5分钟的无响应状态。

基础配置代码

public static void Main(string[] args)
{
    var builder = WebApplication.CreateBuilder(args);
    builder.Host.ConfigureDefaults(args);
    builder.Services.AddControllersWithViews(ConfigureMvcOptions)
    
    var app = builder.Build();
    Log.Info("Begin Configuration"); 
    app.UseRouting();
    app.MapControllers();
    app.UseStaticFiles();
    app.Lifetime.ApplicationStarted.Register(Started);
    ConfigureSomeOtherIrrelevantSutff();
    Log.Info("Configuration Complete");
    app.Run(); //Delay happens after this
}

private static void Started()
{
    Log.Info($"Application Started");
}

日志内容

2023-01-17 12:27:50.470: Begin Configuration
2023-01-17 12:28:25.498: Configuration Complete
2023-01-17 12:28:25.580: Application Started
2023-01-17 12:32:57.700: First Request

另外,IIS AspNetCore Module V2在事件查看器中记录了Application 'C:\IIS\MyApp' started successfully.的信息。

在上述日志之后,应用要等待约4分钟才会处理首个请求,期间Web应用完全无响应,浏览器持续加载。

相关注意事项

  • 配置了<handlerSetting name="experimentalEnableShadowCopy" value="true" />,用于解决之前部署时的文件锁定问题,但认为这不是当前问题的原因,因为延迟发生在文件复制完成很久之后。
  • 延迟期间,IIS工作进程的CPU使用率为0%,应用完全没有任何操作。
  • IIS中已启用“禁用重叠回收”,新进程启动时旧进程已完全终止,不存在资源竞争。
  • 所有文件部署完成后才会回收应用池,不会因配置/文件变化自动回收。

补充说明

  • 无法在本地或无负载的服务器上复现此问题。
  • 有时关闭应用时也会遇到类似问题:注册的ApplicationStopped事件显示应用已关闭,但IIS会持续等待数分钟才启动新版本。

不知从何处着手诊断该问题,因为它似乎完全发生在我们的代码之外,请问该如何进一步调试此延迟问题?


内容的提问来源于stack exchange,提问作者MrZander

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 11:56:44