我们产品中的互联网访问代码适用于 99.99% 的人。但是,对于其中一些人来说,它根本不起作用。我们一直在添加一些跟踪代码来尝试找出问题所在,结果 InternetOpenURL 报告错误 2 - “系统找不到指定的文件” - 来自此函数调用:
options = INTERNET_FLAG_RAW_DATA | INTERNET_FLAG_RESYNCHRONIZE;
handle = InternetOpenUrl(internet,url,NULL,0,options,0);
(internet 是使用 InternetOpen 打开的 Internet 连接的句柄,url 是存在于我们 Web 服务器上的简单文本文件的 URL。)
我们测试了两个不同的网站,一个 http 和一个 https,它们位于完全不同的地方(不同的域,托管在地理位置上的服务器),它们都给这个人和其他几个人提供了相同的错误。99% 的人,包括我们自己,都可以毫无问题地访问它们。不仅如此,受影响的人可以在他们的网络浏览器中毫无问题地访问相同的 URL。
这到底是怎么回事?:(
编辑:幸运的是,我们发现出了什么问题!事实证明,有些人在他们的 Internet 选项中选中了“为 LAN 使用代理服务器”复选框,而没有实际指定代理服务器。我们试图使用不存在的代理服务器详细信息,当然会遇到问题。
我仍然需要为此研究一个编程解决方案,但是报告问题的每个人都可以通过这个解决方案解决他们的问题:
- 打开 Internet Explorer
- 转到“工具-> Internet 选项”
- 单击“连接”选项卡。
- 底部附近应该有一个标有“LAN 设置”的按钮。点击它。
- 在“代理服务器”字段下,取消选中“为 LAN 使用代理服务器”
- 一切都单击确定,重新启动 Windows,然后再次尝试通过产品访问 Internet。
我不知道为什么这么多人选中了该框但没有指定代理服务器。但显然这是修复它需要做的。