1

我有类似的问题,这个环节No Internet on the device via codeHttpWebRequest的抛出ConnectFailure在实际设备上,但不适用于Windows 6.5手持

我这是在Windows手持设备上运行嵌入式6.5 Intermec的IROC Ci70设备上工作的模拟器。该设备具有802.11abgn无线LAN适配器。

在运行Windows Mobile 6.5.3的设备模拟器上,HttpWebRequests做得很好,但不在设备上。我总是通过设备上的ConnectFailure状态码获取WebException。

我试图进一步调试到ConnMgr类的本机代码中,发现ConnMgrMapURL无法将URL映射到任何网络Dest Guid,它总是返回00000000-0000-0000-0000-000000000000。进一步的调试表明,ConnectFailure异常发生的错误在mscoree.dll中的EstablishConnectionForURL方法中。不幸的是,由于设备的限制,我无法调试这个文件。

我也试过OpenNETCF ConnectionManager类来做连接。状态是连接的,但看着这个类的代码,OpenNETCF家伙们正在做硬编码Internet Guid id进入方法。但是HttpWebRequest仍然没有得到回应。

我还关闭了所有证券以及安装在设备上的SDK开发证书上。

我还尝试让设备通过ActiveSync使用DMA连接到互联网,并关闭WiFi作为另一项测试。

我也试图针对.NET-CF版本1,2,3.5(3.5.9xxx)和3.5(3.5.7xxx)的我尝试工作的事情

无。但内置的浏览器和Intermec HTML5浏览器(第三方应用程序)可以连接到互联网和本地地址。

不幸的是,我没有其他设备进行比较。请帮助我。

回答

0

感谢Josef的帮助,我尝试了一切从设置连接&网卡到编辑注册表并使用工具,如MS网络分析仪。

它仍然给了相同的结果。原来,正如我所提到的ConnMgr的ConnMgr的本地方法也给我的线索和解决方案:-)。

。对于我测试的任何URL,ConnMgrMapURL总是返回0000-0000000-00000。这个问题使我找到了关于CM_Mappings服务提供商和Windows Mobile提供的供应系统Microsoft CM Mappings Definition

我跟着这个链接Device Provisioning Tutorial首先使用RapidConfig工具来查询从器件的电流CM_Mappings,结果就是什么都没有出现。模拟器有,我试图从模拟器中删除所有条目,结果是模拟器与具有消息ConnectFailure的设备相同。

因此,我使用上述链接中找到的默认值,并将它们推回设备和VOILA !!!。它的工作和所有种类的URL被正确地路由到MetaNetworks和HttpWebRequest的便从响应码200

这是一个冒险的有一个地狱。我不知道为什么我的设备会清除这些映射,而且对于MS如何实现错误处理非常令人沮丧。发生这些错误时找不到有用的信息。我花了差不多一个星期的时间来缩小根本原因。

我希望这会帮助有同样问题的人。

0

如果“我尝试的东西都不行,但内置的浏览器和Intermec HTML5浏览器(第三方应用程序)可以连接到互联网和本地地址。” httpwebrequest不会触发连接管理器连接到正确的网络类型。有一个'工作'和'互联网'连接。你用什么网址来访问网页?它可能指向一个'工作'类型的地址,一个使用非虚线方案。

尝试将设备上的连接设置为“工作”,并将“工作”连接设置为也连接到没有代理的“Internet”的连接。然后将WiFi适配器连接到“工作”(请参阅​​设置>连接> WiFi,“网卡连接到:=工作”)。

设置为允许DMA在ActiveSync或Windows Mobile设备管理器中的实际设备是没有意义的。这仅适用于仿真器。但WMDC中的'允许数据连接'是必须的,或者当连接到ActiveSync时,硬件设备将关闭WiFi连接

+0

谢谢约瑟夫,我试过你的建议。我将连接(互联网和私人)设置为“我的工作网络”,并将此网络连接到互联网而无需任何代理,并将网卡设置为“工作”,但它仍然无法工作。 此外,我一直在测试的网址都是点阵方案(http://www.google.com,http://192.168.1.2:80/),没有点方案(http:// duyle-pc /) 。 –

+0

我尝试了P/Invoke ConnMgr方法,例如ConnMgrMapUrl(总是在设备上返回00000-000000,而在仿真器上,它返回给定Uri的正确Guid)。 方法ConnMgrEstablishConnectionSync为任何类型的URL(谷歌或本地)以及Internet Guid和工作指南都生成“已连接”状态。所以我想连接可以建立)。 另外方法EstablishConnectionForURL实际上yeilds结果-2147483648 = 0x80000000 Hresult。实际上,代码运行通过代理,并且服务在没有任何证据的情况下在某个地方遇到错误之前将其指向某个地方。 –

+0

您是否在设备上的Internet Explorer中尝试了相同的URL?你为什么打扰连接管理器?它通常不需要管理或控制就可以工作。可能还可以添加用于httpWebrequest的代码行。有关进一步分析,请使用vxUtils和MS Network Analyzer等工具。 – josef

相关问题