Не удается получить доступ к веб-сервису с мобильного устройства
-
09-06-2019 - |
Вопрос
Я разработал программу на мобильном устройстве (Pocket PC 2003) для доступа к веб-службе, веб-служба установлена на ПК с Windows XP SP2 с IIS, компьютер имеет IP 192.168.5.2.
Устройство получает из беспроводной сети IP 192.168.5.118, и программа работает нормально, она вызывает метод из веб-службы и выполняет необходимое действие.Эта программа будет использоваться в различных зданиях.
Теперь у меня есть эта проблема, оказывается, что когда я пытаюсь протестировать ее в другом здании (расстояния не менее 100 м).или 200 мтс.) подключенная к сети, программа не может подключиться к веб-сервису, в этот момент устройство получает от точки доступа IP 192.168.10.25 и обращается к тому же компьютеру XP, который я указал ранее (192.168.5.2).Я создал мобильную страницу aspx, чтобы убедиться, что я могу связаться с веб-сервером по сети, и он загружает ее на устройство, я даже создал winform, которая обращается к тому же веб-сервису на ПК из этого здания и также работает там, поэтому я не понимаю, что происходит.Я также попытался пропинговать этот компьютер 192.168.5.2, и он отвечает живым.
После этого сбоя я вернулся к исходному месту, где я тестировал программу ранее, и оказалось, что она работает нормально.
Единственное, что здесь выглядит по-другому, так это то, что третий номер в IP равен 10 вместо 5, еще одно наблюдение заключается в том, что я не могу выполнить пинг на мобильное устройство.Я чувствую себя сбитым с толку, я не знаю, что здесь происходит?В чем может быть проблема?
Вот как я вызываю веб-сервис;
//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>
У кого-нибудь есть представление о том, что происходит?
Решение
Это похоже на проблему с сетью, если только в .Net CF нет странной ошибки, которая не позволяет вам перемещаться по подсетям в определенных ситуациях (я не могу найти никаких доказательств такой вещи в Google).
Можете ли вы получить какую-либо поддержку от сетевой / ИТ-команды?Кроме того, пробовали ли вы это из другой подсети?То есть.не такой, как на компьютере XP (192.168.5.x), и не такой, как на том, который пока не работал (192.168.10.).
@Shaun Austin - это не объясняет, почему они могут попасть на обычную веб-страницу на компьютере XP из другой подсети.
Другие советы
Это была проблема с сетью, мы настроили прокси-сервер, и в этом была проблема, мне нужно узнать больше о сети.
Я не специалист в этих вопросах, но похоже, что первые 3 части адреса замаскированы.Возможно ли, что мобильному устройству присваивается сетевая маска:
255.255.255.0
Поскольку для выхода за пределы диапазона первых 3 частей вам нужно, чтобы маска была:
255.255.0.0
Это может быть чрезмерным упрощением или совершенно неправильным, но это был мой внутренний ответ на вопрос.