无法从移动设备访问Web服务

时间:2020-03-05 18:44:08  来源:igfitidea点击:

我在移动设备(Pocket PC 2003)中开发了一个程序来访问Web服务,该Web服务安装在具有IIS的Windows XP SP2 PC上,该PC的IP为192.168.5.2.

设备从无线网络获取IP 192.168.5.118,程序运行正常,它从Web服务中调用该方法并执行所需的操作。该程序将在各种建筑物中使用。

现在,我遇到了这个问题,结果是,当我尝试在与网络连接的另一座建筑物(距离大约为100 mts或者200 mts)中进行测试时,程序无法连接到Web服务,此时设备从一个IP为192.168.10.25的访问点,它访问我之前说过的同一XP计算机(192.168.5.2)。我制作了一个移动aspx页面,以验证是否可以通过网络访问Web服务器并将其加载到设备中,甚至制作了Winform,该Winform可以从该建筑物访问PC中的同一Web服务,并且也可以在其中运行,所以我不了解发生了什么。我还尝试对192.168.5.2 PC进行ping操作,它仍然可以响应。

失败之后,我回到了之前测试程序的原始位置,并且碰巧它可以正常工作。

我在这里看起来唯一的不同是IP中的第三个数字是10而不是5,另一个发现是我无法ping通移动设备。我感到困惑,我不知道这里会发生什么?可能是什么问题呢?

这就是我所谓的Web服务。

//Connect to webservice
svc = new TheWebService(); 
svc.Credentials = new System.Net.NetworkCredential(Settings.UserName, Settings.Password);
svc.AllowAutoRedirect = false;
svc.UserAgent = Settings.UserAgent;
svc.PreAuthenticate = true;
svc.Url = Settings.Url;
svc.Timeout = System.Threading.Timeout.Infinite;

//Send information to webservice
svc.ExecuteMethod(info);

移动设备中app.config的内容为;

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="UserName" value="administrator" />
    <add key="Password" value="************" />
    <add key="UserAgent" value="My User Agent" />
    <add key="Url" value="http://192.168.5.2/WebServices/TWUD.asmx" />
  </appSettings>
</configuration>

有人知道发生了什么吗?

解决方案

回答

不是这方面的专家,但看起来地址的前3个部分已被掩盖。是否可以为移动设备提供以下网络掩码:

255.255.255.0

为了超出前三个部分的范围,我们需要使用以下遮罩:

255.255.0.0

这可能是过分简化或者完全错误的方法,但这是我对问题的直截了当的回答。

回答

这看起来像是一个网络问题,除非.Net CF中存在一个奇怪的错误,该错误不允许我们在某些情况下遍历子网(我无法从谷歌搜索中找到任何类似的证据)。

我们可以从网络/ IT团队获得任何支持吗?另外,我们是否从其他子网尝试过? IE。与XP机器(192.168.5.x)不同,并且与目前无法使用的机器(192.168.10. )不同。

@Shaun Austin不会解释为什么他们可以从不同的子网访问XP计算机上的常规网页。

回答

这是网络问题,我们配置了代理服务器,这就是问题,我需要详细了解网络。