Windows App无法从某些网络访问服务,但浏览器可以

时间:2016-07-19 14:59:36

标签: windows cordova networking

我有一个使用Cordova构建的Windows应用程序,无法从某些网络访问其网络服务。

我不相信这是一个CORS问题。该应用程序可以正常工作,尤其是来自公共网络,但是当用户通过直接连接或VPN切换到内部网络时,应用程序无法连接。在内部,我的意思是在托管Web服务的组织内部。

如果我调试应用程序错误是:

SCRIPT7002: XMLHttpRequest: Network Error 0x2efd, Could not complete the operation due to error 00002efd. 
  • 如果我要求用户始终打开浏览器到服务URL 作品。
  • 该服务未通过HTTPS调用,因此没有 SSL证书存在问题。
  • 该应用程序在Windows 8和Windows 10平板电脑上运行。

我很确定存在某种网络层问题,但我不知道该寻找什么。

我看到了以下相关问题的答案:

  

...我建议您使用a收集网络跟踪   Microsoft Network Monitor或Wireshark等工具可以理解什么   IP地址是正在进行的连接。 0x2efd错误   与WinINet错误相关:ERROR_INTERNET_CANNOT_CONNECT含义   无法建立与远程服务器的连接。什么时候   你收集一个网络跟踪,尝试寻找TCP-SYN信号和   查看您的远程服务器是否以SYN-ACK响应。

     

https://social.msdn.microsoft.com/Forums/en-US/7cba42bc-0a93-4199-b767-d6e611c0e4d6/error-script7002-xmlhttprequest-network-error-0x2efd-could-not-complete-the-operation-due-to?forum=winappswithhtml5

我的问题是,我对这个问题非常偏僻,而且我希望我能从加拿大跳到夏威夷。

我正在寻找有关如何解决这个问题的任何建议...

1 个答案:

答案 0 :(得分:2)

移动应用程序的网络问题最终是由用于构建应用程序的应用程序设置造成的。

本文介绍了这些设置。

https://msdn.microsoft.com/en-ca/library/windows/apps/br211423.aspx

应用程序中的设置最初设置为“internetClient”。我们需要添加“privateNetworkClientServer”。我特意说添加,因为将其设置为privateNetworkClientServer只是改变了问题。因此,应用程序清单的部分现在看起来如下。

<Capabilities>
    <Capability Name="internetClient" />
    <Capability Name="privateNetworkClientServer" />
    <DeviceCapability Name="webcam" />
</Capabilities>

我们更改了[app \ cordova \ platforms \ windows]文件夹中的所有[* .appxmanifest]文件。