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

ASP.NET Core 8.0应用无请求时被IIS关闭,FileSystemWatcher失效求助

解决ASP.NET Core 8.0应用在IIS中无请求时自动终止的问题

1. 配置IIS应用程序池为"始终运行"模式

  • 打开IIS管理器,定位到目标应用对应的应用程序池
  • 右键选择「高级设置」
  • 将启动模式设置为AlwaysRunning,同时确认**闲置超时(分钟)**保持为0
  • 该设置会让IIS预加载应用进程,并在后台持续维持运行,不会因无HTTP请求就终止

2. 补充ASP.NET Core托管配置(配合IIS设置)

在项目根目录的web.config中添加以下配置,确保进程内托管模式与IIS的始终运行机制兼容:

<aspNetCore processPath="dotnet" arguments=".\YourApp.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess">
  <environmentVariables>
    <environmentVariable name="ASPNETCORE_HOSTINGSTARTUPASSEMBLIES" value="Microsoft.AspNetCore.Server.IISIntegration" />
  </environmentVariables>
</aspNetCore>
  • 核心是将hostingModel设为inprocess,这是ASP.NET Core与IIS集成的推荐模式,能最大化利用IIS的进程管理能力

3. 用轻量后台服务维持进程活跃(替代Ping端点)

如果IIS配置仍不生效,可添加一个无需额外HTTP端点的后台服务,持续标记进程为活跃状态:

public class KeepAliveService : BackgroundService
{
    private readonly ILogger<KeepAliveService> _logger;

    public KeepAliveService(ILogger<KeepAliveService> logger)
    {
        _logger = logger;
    }

    protected override async Task ExecuteAsync(CancellationToken stoppingToken)
    {
        // 等待应用完全启动
        await Task.Delay(TimeSpan.FromSeconds(10), stoppingToken);

        while (!stoppingToken.IsCancellationRequested)
        {
            try
            {
                _logger.LogDebug("维持应用活跃状态,当前时间:{Time}", DateTime.UtcNow);
                // 定期执行空操作,避免进程被标记为闲置
                await Task.Delay(TimeSpan.FromMinutes(5), stoppingToken);
            }
            catch (OperationCanceledException)
            {
                _logger.LogInformation("活跃维持服务停止");
                break;
            }
        }
    }
}

在Program.cs中注册该服务:

builder.Services.AddHostedService<KeepAliveService>();
  • 这个服务仅占用极低资源,无需额外请求就能持续让IIS认为进程处于工作状态,符合KISS原则

4. 排查IIS快速失败保护机制

若应用频繁崩溃,IIS可能主动终止进程:

  • 打开应用程序池高级设置,找到快速失败保护模块
  • 调整「失败次数」和「时间间隔」,或临时禁用该功能用于排查
  • 同时检查Windows事件查看器的应用日志,确认是否存在未捕获的异常导致进程终止

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 06:45:10