1

我有類似的問題,這個環節No Internet on the device via codeHttpWebRequest的拋出ConnectFailure在實際設備上,但不適用於Windows 6.5手持

我這是在Windows手持設備上運行嵌入式6.5 Intermec的IROC Ci70設備上工作的模擬器。該設備具有802.11abgn無線LAN適配器。

在運行Windows Mobile 6.5.3的設備模擬器上,HttpWebRequests做得很好,但不在設備上。我總是通過設備上的ConnectFailure狀態碼獲取WebException。

我試圖進一步調試到ConnMgr類的本機代碼中,發現ConnMgrMapURL無法將URL映射到任何網絡Dest Guid,它總是返回00000000-0000-0000-0000-000000000000。進一步的調試表明,ConnectFailure異常發生的錯誤在mscoree.dll中的EstablishConnectionForURL方法中。不幸的是,由於設備的限制,我無法調試這個文件。

我也試過OpenNETCF ConnectionManager類來做連接。狀態是連接的,但看着這個類的代碼,OpenNETCF傢伙們正在做硬編碼Internet Guid id進入方法。但是HttpWebRequest仍然沒有得到迴應。

我還關閉了所有證券以及安裝在設備上的SDK開發證書上。

我還嘗試讓設備通過ActiveSync使用DMA連接到互聯網,並關閉WiFi作爲另一項測試。

我也試圖針對.NET-CF版本1,2,3.5(3.5.9xxx)和3.5(3.5.7xxx)的我嘗試工作的事情

無。但內置的瀏覽器和Intermec HTML5瀏覽器(第三方應用程序)可以連接到互聯網和本地地址。

不幸的是,我沒有其他設備進行比較。請幫助我。

回答

0

感謝Josef的幫助,我嘗試了一切從設置連接&網卡到編輯註冊表並使用工具,如MS網絡分析儀。

它仍然給了相同的結果。原來,正如我所提到的ConnMgr的ConnMgr的本地方法也給我的線索和解決方案:-)。

。對於我測試的任何URL,ConnMgrMapURL總是返回0000-0000000-00000。這個問題使我找到了關於CM_Mappings服務提供商和Windows Mobile提供的供應系統Microsoft CM Mappings Definition

我跟着這個鏈接Device Provisioning Tutorial首先使用RapidConfig工具來查詢從器件的電流CM_Mappings,結果就是什麼都沒有出現。模擬器有,我試圖從模擬器中刪除所有條目,結果是模擬器與具有消息ConnectFailure的設備相同。

因此,我使用上述鏈接中找到的默認值,並將它們推回設備和VOILA !!!。它的工作和所有種類的URL被正確地路由到MetaNetworks和HttpWebRequest的便從響應碼200

這是一個冒險的有一個地獄。我不知道爲什麼我的設備會清除這些映射,而且對於MS如何實現錯誤處理非常令人沮喪。發生這些錯誤時找不到有用的信息。我花了差不多一個星期的時間來縮小根本原因。

我希望這會幫助有同樣問題的人。

0

如果「我嘗試的東西都不行,但內置的瀏覽器和Intermec HTML5瀏覽器(第三方應用程序)可以連接到互聯網和本地地址。」 httpwebrequest不會觸發連接管理器連接到正確的網絡類型。有一個'工作'和'互聯網'連接。你用什麼網址來訪問網頁?它可能指向一個'工作'類型的地址,一個使用非虛線方案。

嘗試將設備上的連接設置爲「工作」,並將「工作」連接設置爲也連接到沒有代理的「Internet」的連接。然後將WiFi適配器連接到「工作」(請參閱​​設置>連接> WiFi,「網卡連接到:=工作」)。

設置爲允許DMA在ActiveSync或Windows Mobile設備管理器中的實際設備是沒有意義的。這僅適用於仿真器。但WMDC中的'允許數據連接'是必須的,或者當連接到ActiveSync時,硬件設備將關閉WiFi連接

+0

謝謝約瑟夫,我試過你的建議。我將連接(互聯網和私人)設置爲「我的工作網絡」,並將此網絡連接到互聯網而無需任何代理,並將網卡設置爲「工作」,但它仍然無法工作。 此外,我一直在測試的網址都是點陣方案(http://www.google.com,http://192.168.1.2:80/),沒有點方案(http:// duyle-pc /) 。 –

+0

我嘗試了P/Invoke ConnMgr方法,例如ConnMgrMapUrl(總是在設備上返回00000-000000,而在仿真器上,它返回給定Uri的正確Guid)。 方法ConnMgrEstablishConnectionSync爲任何類型的URL(谷歌或本地)以及Internet Guid和工作指南都生成「已連接」狀態。所以我想連接可以建立)。 另外方法EstablishConnectionForURL實際上yeilds結果-2147483648 = 0x80000000 Hresult。實際上,代碼運行通過代理,並且服務在沒有任何證據的情況下在某個地方遇到錯誤之前將其指向某個地方。 –

+0

您是否在設備上的Internet Explorer中嘗試了相同的URL?你爲什麼打擾連接管理器?它通常不需要管理或控制就可以工作。可能還可以添加用於httpWebrequest的代碼行。有關進一步分析,請使用vxUtils和MS Network Analyzer等工具。 – josef

相關問題