无法在一台计算机上从Microsoft Edge Beta(Chromium版本)启动ClickOnce应用程序

时间:2019-11-19 10:58:08

标签: clickonce microsoft-edge chromium

  1. 我下载了Microsoft Edge的内部版本(版本79.0.309.25)。
  2. 已启用ClickOnce:edge:// flags /#edge-click-once
  3. 试图从浏览器启动ClickOnce应用程序。

现在这已在4台计算机上按预期方式工作,但不是我自己的计算机(即使它可以与Edge 44.18362.449.0的稳定版一起使用)。

我可以从开发人员工具的“网络”选项卡中看到已发送请求,并且请求/响应标头看起来与稳定Edge(用户代理除外)相同。控制台会向我显示以下警告消息,我怀疑这是其不起作用的部分原因:

  

资源被解释为文档,但以MIME类型传输   application / x-ms-application:“ _my_clickonce_url _ ”。

更新:显然,这也适用于正在运行的计算机,我弄错了。

在运行正常的其他计算机上未收到此消息。

搜索此消息会给我带来很多点击(但对于其他mime类型),例如:

他们建议采取一些修复措施,例如向链接添加download属性(在我的情况下不起作用)或更改返回的内容类型(在我的情况下应该是正确的)。似乎有一些与代码相关的更改,但是我怀疑我的问题是环境方面的,因为它仅在5台计算机中的一台失败。

一个答案还建议检查Computer\HKEY_CLASSES_ROOT\的摘要编辑器,但这与其他运行正常的计算机相同(.application映射到内容类型application/x-ms-application)。

我怀疑这可能更多是Microsoft支持票而不是堆栈溢出问题,但我想这取决于问题所在。所以我想我将从这里开始。

在cmd中运行SystemInfo.exe会给出以下内容(已编辑的大块内容):

OS Name:                   Microsoft Windows 10 Enterprise
OS Version:                10.0.18362 N/A Build 18362
System Manufacturer:       Hewlett-Packard
System Model:              HP Z230 Tower Workstation
System Type:               x64-based PC
Hotfix(s):                 6 Hotfix(s) Installed.
                           [01]: KB4506991
                           [02]: KB4503308
                           [03]: KB4506472
                           [04]: KB4509096
                           [05]: KB4524569
                           [06]: KB4524570

工作版本的请求标头的比较:

:authority: _redacted_host_
:method: GET
:path: _path_/_AppName_.application?url=https://_redacted_host_:443/_redacted_endpoint_
:scheme: https
accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
accept-encoding: gzip, deflate, br
accept-language: en-US,en;q=0.9
referer: _redacted_url_
sec-fetch-mode: navigate
sec-fetch-site: same-origin
sec-fetch-user: ?1
upgrade-insecure-requests: 1
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.36 Safari/537.36 Edg/79.0.309.25

和我无法使用的版本:

:authority: _redacted_host_
:method: GET
:path: _path_/_AppName_.application?url=https://_redacted_host_:443/_redacted_endpoint_
:scheme: https
accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
accept-encoding: gzip, deflate, br
accept-language: sv,en;q=0.9,en-GB;q=0.8,en-US;q=0.7
referer: _redacted_url_
sec-fetch-mode: navigate
sec-fetch-site: same-origin
sec-fetch-user: ?1
upgrade-insecure-requests: 1
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.36 Safari/537.36 Edg/79.0.309.25

如您所见,除了接受语言,它们完全相同。

更新: 运行进程监视器(procmon.exe)并比较正常计算机和非正常计算机之间的结果,我发现ClickOnce Launcher进程(dfsvc.exe)从未在我的计算机上启动。

msedge.exe会检查以下注册表项: HKCR\MIME\Database\Content Type\application/x-ms-application\Extension =>“ .application”

,然后继续查找似乎是文件扩展名处理程序的文件: HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.application =>“ msedge.exe”

无法正常工作的浏览器永远无法到达第二步。

1 个答案:

答案 0 :(得分:2)

经过长期研究,我们发现这种行为源自智能屏幕过滤​​器。

如果禁用了智能屏幕,则它将无法正常工作(没有错误,也没有消息)。启用智能屏幕后,一切都会按设计工作。

根据Microsoft,这是设计使然,不会更改(因为大公司会允许使用智能屏幕-.-)