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

.NET Core API部署IIS后每10分钟收到本地根目录GET请求问题

这种情况我之前部署.NET Core API到IIS时也遇到过,大概率是IIS自身的内置机制在定期发起请求,下面给你拆解可能的原因、排查步骤和解决办法:

可能的触发原因
  • IIS应用池的存活Ping检查:这是最常见的原因,IIS默认会每隔10分钟(600秒)Ping一次应用池对应的站点根路径,用来确认应用池是否正常响应,这个请求的来源自然就是localhost。
  • 健康检查中间件的误配置:如果你的API里配置了ASP.NET Core健康检查,且把健康检查端点设为了根目录(比如/),那不管是IIS的监控还是自身的定时任务,都可能定期调用这个端点。
  • 服务器内置监控工具:部分Windows Server的监控组件或者第三方轻量监控工具,也可能会定期发起本地请求来确认站点可用性,但这种情况相对少见,优先排查前两项。
排查验证步骤
  1. 检查IIS应用池的Ping设置
    • 打开IIS管理器,找到你的应用池→右键选择「高级设置」
    • 找到「Ping Enabled」「Ping Interval」「Ping Path」这几个选项:默认Ping Interval就是10分钟,Ping Path默认是站点根路径。如果这里是启用状态,那基本就是它在触发请求了。
  2. 核对健康检查配置
    • 翻一下你的Program.cs或者旧版的Startup.cs,看看有没有类似这样的代码:
      app.UseHealthChecks("/");
      
      如果健康检查端点设为了根目录,那也会导致定期的本地请求。
  3. 深挖Application Insights日志细节
    • 你可以在Application Insights里查看该请求的UserAgent字段,IIS的Ping请求通常会带有特定标识(比如IIS Application Pool Ping),这能帮你100%确认来源。
具体解决办法
  • 修改Ping路径(推荐):如果不想关闭存活检查,就新建一个无业务逻辑的健康端点(比如/health),然后在应用池高级设置里把「Ping Path」改成这个路径,这样既保留了存活检测,又不会干扰根路径的日志。
  • 直接禁用Ping:如果你的站点不需要IIS的存活检查,直接把「Ping Enabled」改成False即可。
  • 调整健康检查端点:如果是健康检查的问题,把健康检查的路径改成非根目录,比如:
    app.UseHealthChecks("/health");
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:02:53