Vb.Net检测应用程序服务器是否已关闭

时间:2014-06-24 15:45:56

标签: vb.net login detect application-server

我开发了一个.Net应用程序,我希望通过域服务器管理的局域网中的共享文件与用户共享。当服务器启动并运行正常但服务器关闭时会出现错误。我可以访问该服务器中的sql server数据库。当服务器关闭时,它会发出致命错误并停止应用程序。如何检测服务器出现故障? 我通过以下代码连接到服务器:

Dim sql As String
Dim daCourseMaster As SqlDataAdapter

        Try
            sqlConn = New SqlConnection(connString)
            sqlConn.Open()

            sql = " ... "

            daCourseMaster = New SqlDataAdapter(sql, sqlConn)
            daCourseMaster.Fill(dsDataset, "table")
            dvRegister = New DataView
            dvRegister = dsDataset.Tables("courseRegisters").DefaultView
            dgvCourseRegister.DataSource = dvRegister


        Catch ex As Exception
            MsgBox(Err.Description)
        End Try

现在可能有不同的原因导致用户无法登录服务器:服务器名称错误或用户名或密码错误或服务器可能已关闭!如何区分这些原因让用户知道登录失败的原因可能是什么?

2 个答案:

答案 0 :(得分:1)

假设您需要查询数据库。当您打开连接然后执行查询时,请使用Try-Catch Block并拦截SqlException。它有不同的代码,因此您可以测试连接相关代码

Try

    Using conn as new SqlConnection(...)
        conn.Open()
        ....
    End Using
Catch (connEx as SqlException)
   ' sql - related error handling
Catch (ex as Exception)
   ' here handle all other exception
End Try
通过这种方式,您可以让用户知道连接已丢失,并且以后再次尝试"或类似的东西

答案 1 :(得分:1)

在执行共享的代码之前使用此代码(如果是Sub中的代码):

 If Not My.Computer.Network.Ping(" You Server Name or Server IP") Then Exit Sub

或(如果函数中的代码):

 If Not My.Computer.Network.Ping(" You Server Name or Server IP") Then Exit Function