双击启动之后什么反应都没有,没窗口也没托盘图标,任务管理器里能看到进程在,只能强制结束。这个是什么问题?
确有其事,是真实缺陷,下个版本修复。
链路是:Wails v2 的 Windows 单实例锁在某些情况下会放行第二个实例,第二个实例跟首实例共用了 WebView2 的用户数据目录,WebView2 初始化直接报 ERROR_INVALID_STATE,然后 go-webview2 的自旋消息循环因为失败回调没置位、也没有退出条件,就永久卡死了。而且它卡在 OnStartup 之前,所以没窗口、没托盘图标、也没有启动日志,只能去任务管理器结束进程 —— 跟你反馈的表现完全一致。主要触发场景是以管理员和普通身份混用,权限/完整性级别不一致。
修复是在 wails.Run 之前加了一层进程级守卫:先通过已有的控制通道判断是不是已经有实例在跑,有的话让首实例把窗口显示出来,然后自己退出,第二个实例根本走不到 WebView2。同时新增了 POST /control/show 控制接口和 single-instance 诊断日志,下次再遇到可以直接在数据目录的 system_logs/ 里查。
另外提醒一下:如果快捷方式勾了「以管理员身份运行」,建议取消,这是最容易触发权限不一致的场景。
QQ扫一扫联系
点击联系
2374926113
微信扫一扫联系
确有其事,是真实缺陷,下个版本修复。
链路是:Wails v2 的 Windows 单实例锁在某些情况下会放行第二个实例,第二个实例跟首实例共用了 WebView2 的用户数据目录,WebView2 初始化直接报 ERROR_INVALID_STATE,然后 go-webview2 的自旋消息循环因为失败回调没置位、也没有退出条件,就永久卡死了。而且它卡在 OnStartup 之前,所以没窗口、没托盘图标、也没有启动日志,只能去任务管理器结束进程 —— 跟你反馈的表现完全一致。主要触发场景是以管理员和普通身份混用,权限/完整性级别不一致。
修复是在 wails.Run 之前加了一层进程级守卫:先通过已有的控制通道判断是不是已经有实例在跑,有的话让首实例把窗口显示出来,然后自己退出,第二个实例根本走不到 WebView2。同时新增了 POST /control/show 控制接口和 single-instance 诊断日志,下次再遇到可以直接在数据目录的 system_logs/ 里查。
另外提醒一下:如果快捷方式勾了「以管理员身份运行」,建议取消,这是最容易触发权限不一致的场景。