Не удается получить доступ к веб-сервису с мобильного устройства

StackOverflow https://stackoverflow.com/questions/31297

  •  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

Это может быть чрезмерным упрощением или совершенно неправильным, но это был мой внутренний ответ на вопрос.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top