我們在對話框中嵌入了.NET WebBrowser控件(實際上兩個在不同的選項卡中,如果出於某種原因可能很重要)並且正在運行一個奇怪的問題。我無法在整個應用程序之外重現問題,所以我認爲我們正在其他地方做一些副作用。因此,我無法發佈任何代碼來重現問題,但我仍然希望有人可能至少會對如何調試情況提出建議,並可能找到組件失敗的原因。在加載新的HTML頁面時掛起.NET WebBrowser組件
通常,一切都按預期工作。我們將控件添加到對話框並調用其Navigate方法從服務器獲取HTML頁面。在某些情況下(可能是20-25%的嘗試),控件保持空白並持續顯示等待的光標。從獨立IE瀏覽器加載相同的URL時,問題無法重現。
爲了找到問題,我們正在記錄導航,導航,DocumentCompleted,ProgressChanged和StatusTextChanged事件。在它工作的情況下,我們可以按順序看到導航,導航和DocumentCompleted事件,以及幾個ProgressChanged和StatusTextChanged事件(具有合理值)混合在一起。
在組件失敗的情況下,只激發Navigating事件。然而,服務器日誌和網絡轉儲確認文檔是從服務器請求並正確傳送的。格式錯誤或非法內容當然至少是一種理論上的可能性,但是我甚至會期望組件中至少有一個導航事件,甚至在它試圖分析任何服務器正在傳輸的內容之前。我們也能夠用完全相同的HTML文檔重現成功和失敗的行爲。
所以回到我原來的問題:情況的描述可能有點薄,我不希望完成這個問題的解決方案,但有人可能至少會建議去哪裏尋找什麼和尋找什麼?我對.NET開發經驗不是太熟悉,但是由於WebBrowser可能只是IE的ActiveX組件的一個薄層,我懷疑我能夠調試到它的內部以找到導致問題的任何可能原因?
添加導航(「about:blank」)也解決了我的問題。但爲什麼呢?這是一個錯誤嗎? – 2014-06-21 21:45:12