【问题标题】:SQL Server connection over VPN not responding通过 VPN 的 SQL Server 连接没有响应
【发布时间】:2017-05-24 13:43:02
【问题描述】:

我想将我的 VB.net 应用程序远程连接到位于不同位置的 SQL 数据库服务器。

我在服务器和客户端机器上都安装了 LogMeIn Hamachi,并在客户端机器上加入了现有网络。

我按照tutorial 中提供的步骤为安装在服务器计算机上的 SQL Server 启用 TCP 连接。

我使用以下连接字符串并在 Windows 窗体加载事件上调用 Hascon() 来测试连接。当我构建 VB.net 应用程序时,要么我没有收到任何错误,要么应用程序没有响应。

Private conn As New SqlConnection With {.ConnectionString = "Data Source=IP address provided by Hamachi,1433;Network Library=DBMSSOCN;Initial Catalog=SIIU;User ID=sa;Password=12345;"}
Public Function Hascon() As Boolean
        Try
            Sconn.Open()
            Return True
            Sconn.Close()
        Catch ex As Exception
            MsgBox(ex.Message)
            Return False
        End Try
End Function

我已经在互联网上搜索并尝试了所有可能的解决方案,但没有解决问题。

可能是什么问题?有任何想法吗?

谢谢,

【问题讨论】:

标签: sql-server vb.net connection-string vpn remote-connection


【解决方案1】:

您可以使用这样的简单函数来测试您的连接:

关于 Hamachi 的注意事项:

请记住,如果您使用 Hamachi,您可能需要在 防火墙和防病毒软件以及您的盒子。

这里不需要con.Close(),因为我实现了Using,这是你应该始终为IDisposable做的。

Public Function IsConnectionPossible(ByVal ConnectionString As String) As Boolean
    Dim Result As Boolean = False
    Try
        Using con As New SqlClient.SqlConnection(ConnectionString)
            'Open the connection
            Try
                con.Open()
            Catch ex As Exception
                Debug.WriteLine(ex.Message)
            End Try
            'Get the state
            If con.State = ConnectionState.Open Then
                Result = True
            End If
        End Using
    Catch ex As Exception
        Debug.WriteLine(ex.Message)
    End Try
    Return Result
End Function

您可以像这样简单地调用:

IsConnectionPossible("Data Source=IP address provided by Hamachi,1433;Network Library=DBMSSOCN;Initial Catalog=SIIU;User ID=sa;Password=12345;")

请注意,此功能将纯粹测试连接,实现此功能以打开连接以供将来使用是不切实际的。为此,我建议使用一个类。

【讨论】:

  • 我之前配置防火墙允许sql server和端口号1433,TCP和1434,UDP。我编写了上面的示例代码并在按钮单击事件上调用了 IsConnectionPossible(),它没有响应。
  • @user8328 如果您需要帮助,我们需要的信息没有响应不会有太大帮助。使用断点一步一步调试,看看是哪一行卡住了
  • 我使用了 Try ...Catch ...但它没有抛出错误。我怎么能这样做你会帮助我...谢谢
  • @user8328 读我说的话:QUOTE: if you need help wee need information is not responding wont help much. do a debug step by step using a breakpoint and see which line makes it stuck
  • 请帮助我如何使用断点进行逐步调试。我是 vb.net 的新手。
猜你喜欢
  • 2010-10-14
  • 1970-01-01
  • 2011-08-15
  • 2021-03-14
  • 1970-01-01
  • 2019-12-14
  • 2011-08-29
  • 2019-08-26
  • 1970-01-01
相关资源
最近更新 更多