Не отключайте диспетчер соединений.
Как только вы используете диспетчер подключений Windows Mobile, подключаемый модуль к сетевому стеку (многослойный поставщик услуг Autobind Winsock) начинает автоматически привязывать сетевые подключения.на сетевой интерфейс, соответствующий выбранному месту назначения.По сути, это заставляет пакеты идти правильным путем.Если вы запрашиваете отключение, оно может вообще не отправлять их.
Вместо этого вам следует позвонить в Connect, прежде чем пытаться подключиться к серверу обновлений, а затем RequestDisconnect, когда вы закончите с ним.Используйте асинхронное соединение и присоедините его к событию Connected, если хотите, чтобы оно работало в фоновом режиме.
Чтобы узнать, что делает IE при выборе правильного места назначения - WiFi или GPRS - используйте ConnectionManager.MapUrl, чтобы определить GUID пункта назначения.и передать это в Connect.Поведение отображения по умолчанию:
- Если часть URL-адреса с именем сервера не имеет точек, это рабочий адрес
- Если часть с именем сервера появляется в списке исключенийэто рабочий адрес
- В противном случае это интернет-адрес
То, что он тогда делает, зависит от того, как настроен ActiveSync / Центр устройств Windows Mobile, если устройство подключено к базовой станции, ичто выбрано в разделе «Моя сетевая карта подключается к» для WiFi (Пуск> Настройка> вкладка Подключения> Сетевые карты или значок WiFi).Если для этого параметра установлено значение «Работа», а для отображения - «Интернет», он никогда не будет использовать WiFi.Если для него установлено значение «Интернет», он будет использовать WiFi, если он связан, и использовать GPRS, если нет.
Насколько я помню, HttpWebRequest .NET CF автоматически использует диспетчер соединений, следуя поведению IE.сопоставления места назначения, поэтому вам может вообще не понадобиться класс OpenNETCF.