Skip to content

🐛[BUG] 开机自启未生效 #4128

Description

@Quartz-X

🐛 描述

问题现象
在 Windows 11 IoT 企业版 LTSC (24H2) 上安装 Watt Toolkit 3.1.0 后,开启“开机自启动”功能时,程序无法成功注册系统开机自启服务。
手动在 shell:startup 目录中创建程序快捷方式后,虽然系统显示已注册自启项,但实际重启后程序仍无法自动启动。

关联日志线索
查看当日日志(见下方“日志信息”),发现程序启动过程中多次抛出 TaskCanceledException,主要发生在 TestDNSOverHttpsAsyncGetValidDNSAsync 调用链。异常根源为 Socket 操作被中止(错误码 995),可能表明在网络环境未就绪时程序过早发起 DNS 测试,导致超时或取消,进而影响了后续初始化流程,最终使得自启服务未能完全生效。


📷 复现步骤

  1. 以默认设置安装 Watt Toolkit 3.1.0(官方版本,未修改任何文件)。
  2. 打开程序,在“设置”中勾选“开机自启动”。
  3. 观察系统自启注册情况(例如使用任务管理器或 Autoruns 查看启动项),发现并未成功注册。
  4. 手动创建快捷方式至 shell:startup 目录,此时系统启动项列表中可见 Watt Toolkit。
  5. 重启操作系统,程序并未自动启动。
  6. 重复上述操作多次,现象一致。

📄 日志信息

2026-08-11 14:43:41.5055|Error|StartOrStopProxyService|System.Threading.Tasks.TaskCanceledException: A task was canceled.
 ---> System.Threading.Tasks.TaskCanceledException: A task was canceled.
   at System.Threading.Tasks.TaskCompletionSourceWithCancellation`1.WaitWithCancellationAsync(CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)
   at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.SocketsHttpHandler.<SendAsync>g__CreateHandlerAndSendAsync|115_0(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
   --- End of inner exception stack trace ---
   at System.Net.Http.HttpClient.HandleFailure(Exception e, Boolean telemetryStarted, HttpResponseMessage response, CancellationTokenSource cts, CancellationToken cancellationToken, CancellationTokenSource pendingRequestsCts)
   at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
   at BD.WTTS.Services.Implementation.NetworkTestService.TestDNSOverHttpsAsync(String testDomain, String dohServer, DnsRecordType dnsRecordType, CancellationToken cancellationToken)
   at BD.WTTS.Services.ProxyService.GetValidDNSAsync(String dns, CancellationToken cancellationToken) | 
...(后续多行类似异常,均指向同一调用链,且包含 SocketException 995 的详细堆栈)...

完整日志见附件 nlog-all-2026-08-11.log(已随附)。


🚑 其他信息

  • 处理器体系结构:x86_64
  • 系统版本号:Windows 11 IoT 企业版 LTSC(24H2),内核 WIN32_NT 10.0.26100.8894
  • 下载渠道:官网(Watt Toolkit 官方发布)
  • 程序版本:3.1.0 for Windows
  • 是否包含独立运行时:否(默认安装,未选择独立运行时版本)
  • .NET 运行时:Microsoft Windows Desktop Runtime 10.0.10 (x64)

nlog-all-2026-08-11.log

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions