BeyondDimension / BeyondDimension/SteamTools
🐛[BUG] 开机自启未生效
- Dominant language
- C#
- Stars
- 26.8k
- Forks
- 1.7k
- PR merge metrics
- No merged PRs in 30d
Description
### 🐛 描述
**问题现象**
在 Windows 11 IoT 企业版 LTSC (24H2) 上安装 Watt Toolkit 3.1.0 后,开启“开机自启动”功能时,程序无法成功注册系统开机自启服务。
手动在 `shell:startup` 目录中创建程序快捷方式后,虽然系统显示已注册自启项,但实际重启后程序仍无法自动启动。
**关联日志线索**
查看当日日志(见下方“日志信息”),发现程序启动过程中多次抛出 `TaskCanceledException`,主要发生在 `TestDNSOverHttpsAsync` 和 `GetValidDNSAsync` 调用链。异常根源为 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.g__CreateHandlerAndSendAsync|115_0(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.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.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](https://github.com/user-attachments/files/30925471/nlog-all-2026-08-11.log)
Contributor guide
No contributing guide indexed for this repository
Research direction
Reproduce the startup failure on Windows 11 IoT Enterprise LTSC 24H2 using the reported Watt Toolkit 3.1.0 setup, then inspect the attached nlog-all-2026-08-11.log. Start with NetworkTestService.TestDNSOverHttpsAsync and ProxyService.GetValidDNSAsync, tracing how the TaskCanceledException and SocketException 995 affect initialization. Done means enabling startup registers successfully and the app launches after reboot without this failure.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- desktop, operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 38/100