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

.NET Core Web App(控制台)在IIS中随机重启原因排查求助

导致IIS上.NET Core Web应用随机重启的常见因素

我来帮你梳理下那些容易被忽略的、可能导致你的.NET Core Web应用在IIS上无预警重启的原因:

  • 应用池自动回收:IIS应用池默认自带多种回收触发条件,比如私有内存占用超过1.8GB、CPU使用率持续过高、每29小时(1740分钟)的定期回收,甚至请求数达到阈值。你可以在IIS管理器中找到对应应用池的「回收」选项卡,查看这些设置是否在你不知情的情况下触发了自动回收——每次回收都会重启应用进程。

  • 应用目录文件变动:.NET Core会监听应用根目录下的关键文件(比如web.config、appsettings.json,还有bin目录的DLL文件),如果这些文件被意外修改(比如杀毒软件扫描时的临时写入、备份工具的同步操作,甚至远程操作时的误编辑),应用会触发重启来加载新内容。另外,应用所在磁盘空间不足,也可能引发文件系统的异常变动,间接触发重启。

  • IIS配置隐性变更:哪怕你没手动重启IIS,一些全局配置调整(比如站点绑定修改、应用池高级参数变更,或者服务器安装了新的IIS模块),都可能导致应用池自动重启以加载新配置。

  • 系统资源耗尽:如果服务器整体内存不足,Windows的内存回收机制可能会强制终止占用内存较多的dotnet.exe进程,之后IIS会自动重启你的应用。此外,CPU长时间满载、磁盘IO过高,也可能导致应用进程被系统或IIS强制重启。

  • 日志/临时文件堆积:如果应用在根目录生成大量日志文件,或者服务器临时目录(%TEMP%)文件过多,一方面可能触发.NET Core的文件监听机制,另一方面也可能导致磁盘空间不足,间接引发应用重启。

  • .NET Core运行时或应用代码问题:某些特定版本的.NET Core运行时可能存在内存泄漏、进程崩溃的bug;或者你的应用代码里有未处理的致命异常,导致进程意外终止,IIS随后会重启应用。你可以查看Windows事件查看器的「应用程序」日志,里面会有dotnet.exe崩溃的相关记录。

  • 第三方组件干扰:如果你的应用依赖了第三方IIS模块(比如某些URL重写规则、自定义模块),或者使用的NuGet包存在内存泄漏、不稳定的情况,都可能导致进程异常,进而被IIS重启。

  • 服务器硬件/电源问题:虽然概率较低,但服务器的硬件故障(比如内存、磁盘的间歇性错误),或者电源管理设置(比如意外进入睡眠模式,不过服务器一般不会开启),也可能导致进程意外终止,之后应用被自动重启。

排查建议

优先检查Windows事件查看器的「应用程序」和「系统」日志,里面会记录每次应用重启的具体触发原因,帮你快速缩小排查范围。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:14:33