Visual Studio Ctrl+F5运行一段时间后停止,如何延长其运行时长?
问题答复
核心疑问澄清
Visual Studio 和 dotnet watch run 本身没有默认的运行时长限制,你遇到的10分钟自动停止是异常触发的进程终止,和默认的时间限制配置无关,常见触发原因和修复方案如下:
常见问题修复方案
- 文件监视逻辑触发崩溃
dotnet watch会默认监视项目目录下所有文件的变更,如果你在运行过程中修改了编译产物目录、或者批量更新了大量项目文件,可能触发内置的异常退出逻辑。
修复方式:
在项目根目录的.csproj文件中新增如下配置,排除不需要监视的目录和文件,减少异常触发概率:
<PropertyGroup> <!-- 排除不需要监视的目录 --> <WatchExcludeDirectories>bin;obj;node_modules;wwwroot/lib</WatchExcludeDirectories> <!-- 排除不需要监视的文件 --> <WatchExcludeFiles>*.log;appsettings*.json;*.md</WatchExcludeFiles> </PropertyGroup>
运行时可以追加参数降低异常触发可能:dotnet watch run --no-restore
- IIS Express 空闲超时回收
如果你调试时使用IIS Express托管站点,IIS Express默认有20分钟的空闲超时,如果你的站点连续10分钟以上没有收到任何请求,会触发进程自动回收,和你的现象吻合。
修复方式:
打开项目下Properties/launchSettings.json文件,找到iisSettings节点,修改空闲超时配置即可,示例为设置2小时超时:
"iisSettings": { "iisExpress": { "applicationUrl": "http://localhost:5000", "sslPort": 5001, "idleTimeout": "02:00:00" } }
如果使用Kestrel自托管运行,默认没有空闲超时限制,可以排查自己的业务代码是否加了主动退出的逻辑。
- VS Code 终端自动回收
如果在VS Code内置终端运行命令,部分默认配置会在终端空闲一段时间后自动终止后台进程。
修复方式:
打开VS Code设置,搜索terminal.integrated.enablePersistentSessions,勾选该配置,同时将terminal.integrated.persistentSessionReviveProcess设置为onWindowLoad即可。
内容的提问来源于stack exchange,提问作者AsIndeed
相关产品推荐
相关产品推荐

