2010-09-10 47 views
1

嗨,我希望有人可以幫助, 在基本術語中,我試圖阻止嵌入式瀏覽器,在我的Windows窗體應用程序中,導航到'此程序無法顯示網頁'頁面,而是顯示我自己的錯誤頁面。我如何捕捉頁面無法加載消息?

C#應用程序是嵌入到我的Windows窗體中的Web瀏覽器,其目的是允許用戶單擊提供的按鈕,將瀏覽器導航到預定義的WebService URL。如果該服務沒有在本機上運行,​​那麼瀏覽器不會說我無法加載,而是需要導航到我的自定義頁面。

我環顧四周,至今沒有找到解決方案的運氣,顯然HttpStatusCodes是一種方式,但我不知道如何使用它們。

代碼段:

private void currentMachineToolStripMenuItem_Click(object sender, EventArgs e) 
{ 
    webBrowser1.Navigate("http://localhost:2021/wsservice/status"); 
} 

正如你所看到的,目前非常簡單的程序。

你可能會需要使用HttpWebRequest和一個HttpWebResponse對象做 本 -

回答

2

從這個link服用。使用 WebRequest.Create(url)方法創建具有所需URL的HttpWebRequest。然後使用GetResponse()方法獲取 HttpWebResponse。 HttpWebResponse將從服務器的 返回狀態代碼。這會告訴你URL是否存在。 404表示「未找到頁面 」。 200表示「成功」。等

http://msdn.microsoft.com/en-us/library/8y7x3zz2(vs.71).aspx

也是另一個鏈接,可能會幫助你 - http://www.vcskicks.com/check-website.php

+0

感謝和vcskicks聯繫是非常有益的。 – Matthew 2010-09-10 11:14:57

3

你可以試試這個:

Private void WebBrowser1_NavigateError(Object sender, EventArgs e) 
{ 
    WebBrowser1.Navigate(App.Path + "\retry.htm"); 
} 
0

您可以檢查指示該頁面的字頁面內容沒有正確加載

if(webBrowser1.Document.InnerHtml.Contains("error")) 
0

您可以檢查過返回的文檔的URL,可以找到這些資源地址web瀏覽器使用,以顯示錯誤頁面:是完美工作

if (webBrowser1.Document.Url.ToString().Contains("res://ieframe.dll/dnserrordiagoff.htm")) 
    ...