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

WinAppDriver启动报错4723端口被System进程占用如何解决?

端口占用原因说明
  • PID为4的System进程占用端口本质是Windows内核级HTTP服务组件HTTP.sys预留/占用了端口,HTTP.sys会代理所有运行在内核层的HTTP服务请求,对应的进程都会统一显示为System进程,不一定是杀毒软件导致,常见的触发场景包括:
    1. IIS服务、Windows远程桌面服务、Hyper-V服务、Windows更新相关服务启用
    2. 杀毒软件的Web防护、内核级网络过滤模块启用
    3. 其他依赖内核HTTP服务的第三方软件运行
解决方案

方案1:更换WinAppDriver启动端口(最快捷)

无需处理现有端口占用,直接修改启动和业务代码即可:

  1. 启动WinAppDriver时指定自定义端口,示例代码:
var p = new Process();
p.StartInfo.FileName = @"C:\Program Files (x86)\Windows Application Driver\WinAppDriver.exe";
// 追加参数指定端口,可替换为任意未被占用的端口,示例用4724
p.StartInfo.Arguments = "4724";                
p.Start();
  1. 同步修改业务代码中的服务地址:
var appPath = @"ApplicationPath";
// 端口和启动参数保持一致
var windowsApplicationDriverUrl = "http://localhost:4724";
var appiumOptions = new AppiumOptions();
appiumOptions.AddAdditionalCapability("app", appPath);

session = new WindowsDriver<WindowsElement>(new Uri(windowsApplicationDriverUrl), appiumOptions);

方案2:释放4723端口占用(必须使用默认端口时采用)

  1. 首先查看HTTP.sys预留端口列表,运行命令:
    netsh int ipv4 show excludedportrange protocol=tcp
    如果4723在预留列表内,以管理员权限运行以下命令解除预留:
    netsh int ipv4 add excludedportrange protocol=tcp startport=4723 numberofports=1 store=persistent
  2. 排查占用端口的服务:
  • 暂时停止IIS、Hyper-V、远程桌面等系统服务后重试
  • 暂时关闭杀毒软件的Web防护、网络过滤功能后重试,验证是否为杀毒软件导致的占用
  1. 以上操作完成后重启电脑即可生效。

方案3:重置HTTP.sys服务(极端情况使用)

如果以上操作都无法释放端口,以管理员权限运行以下命令重置HTTP服务:

net stop http
net start http

操作前请保存正在运行的依赖HTTP服务的业务数据,避免中断。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 06:27:04