1

У меня подобные вопросы по этой ссылке No Internet on the device via codeHttpWebRequest бросает ConnectFailure на реальном устройстве, а не на эмуляторе для Windows, Handheld 6,5

Я работаю на устройстве Intermec ИНК Ci70, который работает на Windows, Handheld Embedded 6.5. Это устройство имеет адаптер 802.11abgn Wireless LAN.

На эмуляторах устройств, работающих под управлением Windows Mobile 6.5.3, HttpWebRequests отлично справляется, но НЕ на устройстве. Я всегда получаю WebException с кодом состояния ConnectFailure на устройстве.

Я попытался отлаживать дальше в Родные коды класса ConnMgr и выяснил, что ConnMgrMapURL не может сопоставить URL-адрес с любой сетью Dest Guid, он всегда возвращает 00000000-0000-0000-0000-000000000000. Дальнейшая отладка показывает мне, что ошибка, вызванная исключением ConnectFailure, находится в методе CreateConnectionForURL в файле mscoree.dll. К сожалению, я не могу отладить этот файл из-за ограничений устройства.

Я также попробовал класс OpenNETCF ConnectionManager для подключения. Статус подключен, но, смотря на коды этого класса, ребята из OpenNETCF делали в коде методы hardguode Internet Guid id. Но HttpWebRequest все еще не получает ответа.

Я также отключил все ценные бумаги, а также установил сертификаты разработки SDK на устройстве.

Я также попытался позволить устройству использовать DMA через ActiveSync для подключения к Интернету и отключить WiFi в качестве еще одного теста.

Я также попытался целевой .NET CF-версии 1, 2, 3.5 (3.5.9xxx) и 3.5 (3.5.7xxx)

Ни одна из вещей, которые я попробовал работу. Но встроенный просмотр и браузер Intermec HTML5 (стороннее приложение) могут подключаться к Интернету и локальным адресам.

К сожалению, у меня нет другого устройства для сравнения. Пожалуйста помоги мне с этим.

ответ

0

Спасибо Josef за вашу помощь. Я пробовал все: от установки подключений & сетевых карт для редактирования реестров и с помощью инструментов, таких как MS Network Analyzer.

Он по-прежнему дает те же результаты. оказалось, что нативные методы в ConnMgr в так дал мне ключи и решения :-).

Как я упомянул ConnMgr.ConnMgrMapURL всегда возвращает 0000-0000000-00000 для любых URL-адресов, которые я тестировал. Эта проблема привела меня к поиску поставщика услуг CM_Mappings и системы обеспечения, которую Windows Mobile предоставляет Microsoft CM Mappings Definition.

Я пошла по этой ссылке Device Provisioning Tutorial, чтобы сначала использовать инструмент RapidConfig для запроса текущих CM_Mappings с устройства, и результат ... ничего нет. У эмулятора есть и я попытался удалить все записи из эмулятора, и результатом было то, что эмулятор был таким же, как и устройство с сообщением ConnectFailure.

Итак, я использовал значения по умолчанию, указанные в приведенных выше ссылках, и отбросил их обратно на устройство и VOILA !!!. Он работал, и все типы URL были правильно перенаправлены в MetaNetworks, и HttpWebRequest дал код ответа 200.

Это был один адский приключение. Я не знаю, почему мое устройство удалило эти сопоставления, и очень сложно понять, как MS реализует обработку ошибок. При обнаружении этих ошибок не было обнаружено никакой полезной информации. Мне потребовалось почти неделю, чтобы сузить основную причину.

Я надеюсь, что это поможет кому-то, кто имеет такую ​​же проблему.

0

if «Ни одна из вещей, которые я пробовал работать, но встроенный просмотр и браузер Intermec HTML5 (стороннее приложение) могут подключаться к Интернету и локальным адресам». httpwebrequest не запускает диспетчер подключений для подключения к правильному типу сети. Существует соединение «Работа» и «Интернет». Какой URL-адрес вы используете для веб-запроса? Возможно, это указывает на адрес типа работы, который использует схему без точек.

Попробуйте установить соединения на устройстве, которые должны быть установлены как в режиме «Работа», так и в настройке «Рабочее» соединение, которое также подключается к «Интернету» без прокси. А затем установите адаптер WiFi для подключения к «работе» (см. «Настройки»> «Соединения»> «WiFi», «Сетевая карта подключается к: = Работа»).

Настройка, позволяющая DMA для реального устройства в ActiveSync или Windows Mobile Device Manager не имеет смысла. Это только для эмулятора. Но «Разрешить подключения к данным» в WMDC является обязательным или аппаратное устройство отключит WiFi-соединение при подключении к ActiveSync.

+0

Спасибо, Йозеф, я попробовал ваше предложение. Я установил оба подключения (Интернет и частный) в «Моя рабочая сеть» и установил, что эта сеть подключается к Интернету без какого-либо прокси-сервера и также устанавливает сетевую карту для работы, но она по-прежнему не работает. Кроме того, URL-адреса, которые я тестировал, были с точечной схемой (http://www.google.com, http://192.168.1.2:80/) и без точечной схемы (http: // duyle-pc /) , –

+0

Я пробовал методы P/Invoke ConnMgr, такие как ConnMgrMapUrl (всегда возвращать 00000-000000 на устройство, тогда как на эмуляторе он возвращает правильный Guid для данного Uri). Метод ConnMgrEstablishConnectionSync предоставляет статус «Подключен» для любых URL-адресов (google или local) и для обоих руководств по Интернету и руководству по работе. Поэтому я предполагаю, что соединение может быть установлено). Также метод CreateConnectionForURL на самом деле результат yilds -2147483648 = 0x80000000 Hresult. На самом деле, код пробежал прокси-сервер и пункты обслуживания, прежде чем он встречает ошибку где-нибудь без каких-либо доказательств. –

+0

Вы пробовали ИДЕННЫЙ URL-адрес в Internet Explorer на устройстве? Почему вы беспокоитесь о диспетчере соединений? Обычно он работает без необходимости управлять или контролировать его. Возможно, вы также можете добавить строки кода, которые вы используете для httpWebrequest. Для дальнейшего анализа используйте такие инструменты, как vxUtils и MS Network Analyzer. – josef

 Смежные вопросы

  • Нет связанных вопросов^_^