2014-02-07 102 views
0

我正在做一個簡單的應用程序,需要互聯網連接。但問題是,當我通過互聯網連接啓動我的應用程序時,我收到了一個Web異常。
因此,我創建了一個新窗體並添加/設置該窗體作爲應用程序的啓動窗體。
我已經在啓動窗體的負載添加以下代碼:檢查互聯網連接問題

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
     'On form load i'm checking if the computer is connected to internet. 
     If My.Computer.Network.IsAvailable Then 

      frmMain.Show() 'shows my application's main form 
      Me.Hide() 
     Else 
      'if no connection then 

      Dim result = MsgBox("Failed to establish connection!") ' show an error message 
      If result = DialogResult.OK Then 'if button okay is pressed 
       Application.Exit() 'exit the application! 
      End If 
     End If 

    End Sub 

但問題是,它沒有做任何事情。仍然給我一個異常錯誤! 我想要做的事很簡單。
1.在我的應用程序啓動時,它檢查互聯網連接是否正常工作。
2.如果支票,互聯網連接不工作:給一個錯誤訊息話題,如果工作,繼續下一個表單(應用程序的主要形式)

注:我的應用程序的主要形式,並下載一個文本文件從一個使用webclient方法的網絡服務器,即使當我使用這個新窗體作爲啓動時,我也會收到一個web異常錯誤。我沒有添加任何更多的代碼到新的表單中,只是上面的代碼在

對此有何幫助?

+0

例外情況如何? –

+0

無論如何,如果互聯網連接在檢查和提取之間發生故障,您仍然需要處理錯誤。 – user1937198

+0

實際上,該功能只是檢查您的電腦是否連接到網絡而不是互聯網。 –

回答

1

Network.IsAvailable只檢查本地網絡,而不是Internet,而是使用此方法。但是,連接可能會在此檢查和您使用它的時刻之間下降,因此必須嘗試下載下載。

Private Declare Function InternetGetConnectedState Lib "wininet.dll" _ 
     (ByRef lpdwFlags As Int32, ByVal dwReserved As Int32) As Boolean 

Public Shared Function IsInternetAvailable() As Boolean 
    Try 
     Dim flags as Integer 
     return InternetGetConnectedState(flags, 0) 
    Catch 
     return False 
    End Try 
End Function 

Private Sub Form1_Load(....) 
    If Form1.IsInternetAvailable Then 
     ...... 

但是我不確定您的問題是否由缺少Internet連接可用性引起。您應該在您嘗試下載文件的位置顯示代碼,或者至少報告確切的錯誤消息

+0

對不起noob問題,但我該如何使用該方法? :| 我喜歡一個消息框,如果沒有連接,並且當有連接繼續到主窗體時出現。 – Jeff

+0

將代碼粘貼到上述表單的同一類中,並將其替換爲My.Computer.Network.IsAvailable。 (已更新) – Steve

+0

Mucho gracias! :)解決了這個問題,完美的作品! :) – Jeff