Windows Mobile Emulator 连接超时访问本地 Web 服务

Posted

技术标签:

【中文标题】Windows Mobile Emulator 连接超时访问本地 Web 服务【英文标题】:Windows Mobile Emulator connection timeout accessing local web service 【发布时间】:2011-04-22 04:59:39 【问题描述】:

我有一个 Windows Mobile 6 应用程序正在尝试对托管在我的本地计算机上的服务进行 Web 服务调用,因此我可以使用 VS2008 连接到模拟设备和 Web 服务来调试登录过程。

我已将设备模拟器配置为连接到 Internet,并通过在设备上的 IE 中进行 Bing 搜索来确认这一点。我已经使用机器上的本地测试表单检查了 Web 服务是否正在运行和工作,并已将 vxUtil 安装到模拟设备并检查我是否可以 ping 我的机器并向我的 Web 服务 URL http://MyMachineName>/Service/MyService.asmx 发出 GET 请求,都成功了。

应用程序通过检查来自 www.google.com 的 Web 请求响应来检查网络连接,这很成功,但是当我尝试调用 Web 服务的登录方法时,我得到一个 .Net SocketException 10060 - 连接尝试失败,因为连接方在一段时间后没有正确响应,或建立连接 失败,因为连接的主机没有响应。

注意:此网络连接检查将按照本文所述替换:Establish Network Connectivity with the Windows Mobile Connection Manager

我已将一个 VS2008 实例附加到我本地运行的 Web 服务中,但没有看到请求来自调用模拟设备上的登录方法。我假设某些东西正在阻止从模拟器到达我的本地计算机的连接,我还能如何找出阻止连接的原因?

【问题讨论】:

它可以很好地连接到不在本地托管的 Web 服务实例,正确解析机器名称,所以我正在远程调试它。我尝试在设备上使用 IE 来访问我机器上的 Web 服务,这不适用于 IP 或机器名称,但适用于远程主机。需要了解有关虚拟网络的更多信息。 让我的移动设备上的虚拟网卡与我的真实网卡对话似乎有点过头了。考虑研究环回适配器,这听起来像是让这成为可能。 【参考方案1】:

发生这种情况的最可能原因是您 PC 的 DNS 查找不适用于 WinMo 设备模拟器。这意味着当它尝试解析“MyMachineName”时,它会返回一个无效的 IP 地址或根本没有。

您可以通过在代码中调用 Dns.Resolve 来查看它返回的内容。尝试直接通过 IP 地址而不是使用机器名访问服务也可能更容易,从而完全绕过 DNS。

【讨论】:

我已经尝试使用 IP 地址和我的机器名称作为 Web 服务 URL。当我使用 vxUtil 时,两者都正确响应对 URL 的 ping 和 GET 请求。我将尝试看看使用 Wireshark 可以看到哪些流量。

以上是关于Windows Mobile Emulator 连接超时访问本地 Web 服务的主要内容,如果未能解决你的问题,请参考以下文章

[Tools] Create your own mobile emulator device by using Chrome dev tool

如何将 Windows Mobile PDA 连接到 Windows 10

将 Windows-mobile 6.5 应用程序连接到 PC 上的 sqlite 数据库

如何让 Windows Mobile 设备中心连接到模拟器

T-Mobile Comet Android USB 调试连接到 Windows 7

无法连接到 windows mobile 6.5.3 设备上的 sql server management studio 中的 sdf 文件