我在Windows 8上有一些奇怪的智能屏幕行为。
我已经在我的计算机上设置了ASP.NET服务器,并且我有一个用我购买的证书签名的hello world应用程序。
当我开始这个烧焦的应用程序时,它向我展示了预期的智能屏幕。如果我的朋友使用URL下载此文件,我将其下载给他,并且他使用Firefox下载它(两台计算机都在局域网中连接),然后启动应用程序,它会向他显示Smart Screen,这也是预期的。但是,如果他尝试使用C#应用程序下载它,他用WebClient.DownloadFile()
或WebClient.DownloadData()
方法编写,然后手动启动它不会在他的计算机上显示智能屏幕,这很奇怪,如果我尝试做同样的事情会发生在我的电脑上使用他的应用程序下载它。但是,如果他然后通过Skype向我发送下载的应用程序并通过Skype返回给他相同的文件,那么他有2份完全相同的应用程序,其中我通过Skype返回给他的那个显示智能屏幕,但是他通过C#下载了一个申请没有。
所以我们尝试了第二种方法,通过Sockets(使用SCS Framework)向他发送应用程序,同样的事情发生了。它没有在他的计算机上显示智能屏幕,但在我的计算机上显示。如果他向我发送他通过Socket收到的应用程序,并且我启动它,它会向我显示智能屏幕,但是当我通过Skype返回该应用程序时,它会显示智能屏幕,当他运行它时。
如果他在我的计算机上使用我的证书签署了我的申请,他启动计算机时就没有智能屏幕。但是当他将它发送给我时,我的计算机上有这个应用程序,当我返回该应用程序时,他通过Skype在他的计算机上签名,然后当他运行时,他的计算机上有智能屏幕。
在整个过程中,永远不会点击智能屏幕显示的Run Anyway按钮,并且始终使用相同的应用程序和相同的证书。
几天前也有问题,我的证书签署的应用程序很少在几台计算机上显示智能屏幕,但在少数计算机上根本没有智能屏幕。
我不确定我是否在这里解释了我的问题,但我所知道的是,当我在多台计算机上运行此应用程序时,有时会出现智能屏幕,有时则没有。
为什么会发生这种情况,是否有解决方法?我真的需要知道智能屏幕会在其他计算机上显示。我在某处读到的是,每个证书都会建立其声誉,智能屏幕会停止弹出。我需要抓住这一刻。所以我想我应该每天运行我的应用程序2-3次,看看智能屏幕是否仍在弹出,但我的方法不太可靠,因为这个测试确认了它,或者我做错了什么。两台计算机都运行Windows 8.1 x64和Windows SDK中的SignTool.exe来签名文件。证书扩展名为p12。有没有其他方法来测试智能屏幕过滤器正在测试/寻找相同的东西?