现在这已在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”
无法正常工作的浏览器永远无法到达第二步。
答案 0 :(得分:2)
经过长期研究,我们发现这种行为源自智能屏幕过滤器。
如果禁用了智能屏幕,则它将无法正常工作(没有错误,也没有消息)。启用智能屏幕后,一切都会按设计工作。
根据Microsoft,这是设计使然,不会更改(因为大公司会允许使用智能屏幕-.-)