我们正在使用 ClickOnce 部署一个 dotnet 应用程序。在 Windows 10 中,这永远不会失败,并且更新和安装过程会按预期进行。但是 Windows 11 安装程序启动并立即报告失败,说明服务器已关闭连接。使用 Wireshark 问题似乎与 TLS 有关。
比较 wireshark 捕获显示 Windows 10 上的更新程序/安装程序使用 TLS 1.2 发送 ClientHello 消息,而 Windows 11 上的相同安装程序使用 TLS1.0 发送此消息。
据我了解,此消息中发送的版本是支持的最高版本。
我检查了W11机器上的internet相关设置,应该可以使用最新的tls版本。 有没有办法强制安装程序使用最新版本?
我设法解决了这个问题。事实证明,该问题与 TLS 无关,而是 ClickOnce 设置中的错误配置。 在这种情况下,部署 url 设置为使用 http,其中应指定 https。我只能假设 W10 会自动纠正该错误,但 W11 不会(理所当然)。
本案例的解决方案:
应该可以解决。请注意,您需要在 Visual Studio 中执行这些步骤。根据我的经验,一旦重新加载项目文件,直接编辑项目文件中的 UpdateUrl 就会恢复原状。