2014-02-07 101 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