gpt4 book ai didi

winapi - 为什么InternetOpenURL 会报错误2(系统找不到指定的文件)?

转载 作者:行者123 更新时间:2023-12-04 23:31:56 24 4
gpt4 key购买 nike

我们产品中的互联网访问代码适用于 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% 的人,包括我们自己,都可以毫无问题地访问它们。不仅如此,受影响的人可以在他们的 Web 浏览器中访问相同的 URL,而不会出现问题。

这到底是怎么回事? :(

编辑 : 幸运的是,我们发现出了什么问题!事实证明,有些人在他们的 Internet 选项中选中了“为 LAN 使用代理服务器”复选框,而没有实际指定代理服务器。我们试图使用不存在的代理服务器详细信息,当然这样做时遇到了问题。

我仍然需要为此调查一个程序化的解决方案,但是每个报告问题的人都通过这个解决方案解决了他们的问题:
  • 打开 Internet Explorer
  • 转到“工具-> Internet 选项”
  • 单击“连接”选项卡。
  • 底部附近应该有一个标有“LAN 设置”的按钮。点击它。
  • 在“代理服务器”字段下,取消选中“为 LAN 使用代理服务器”
  • 单击“确定所有内容”,重新启动 Windows,然后再次尝试通过产品访问 Internet。

  • 我不知道为什么有这么多人选中了该框但没有指定代理服务器。但显然这是修复它需要做的事情。

    最佳答案

    GetLastError()可能不是找出问题所在的最佳方法。来自 docs :

    To determine why access to the service was denied, call InternetGetLastResponseInfo.

    关于winapi - 为什么InternetOpenURL 会报错误2(系统找不到指定的文件)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3729501/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com