【问题标题】:Debug and Cannot Open Connection to SQL调试并且无法打开与 SQL 的连接
【发布时间】:2019-07-11 16:58:25
【问题描述】:

在 SQL 中调试时,出现以下异常:-

System.Data.SqlClient.SqlException: 'A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)'

当我设置下一条语句并再次运行该语句时,它就可以工作了。当我将应用程序作为已编译的应用程序独立运行时,它也可以工作。任何人都知道为什么只有在调试时才会导致错误。

连接到位于异地的远程数据库,而不是本地数据库。

Data Source=xx.xx.xx.xx;Initial Catalog=TheDatabase;User ID=MasterUser;Password=AsIfIMGoingToPostThat

感谢您的帮助。

这是我的连接功能...

    Public Sub New(ByVal strConnect As String)
    Try
        dbConnect = New System.Data.SqlClient.SqlConnection(strConnect)
        dbConnect.Open()
        objParams = New List(Of SqlClient.SqlParameter)
        m_bIsConnected = True
    Catch exc As Exception
        m_bIsConnected = False
    Finally
    End Try

【问题讨论】:

    标签: sql vb.net


    【解决方案1】:

    看起来您的本地连接没有默认使用命名管道,但您的编译版本会尝试(或允许使用 TCP/IP)。该错误表明它可能需要命名管道。

    尝试将此“np:”放入连接字符串的数据源中:

    Data Source=np:xx.xx.xx.xx;  ...
    

    【讨论】:

    • 感谢您的建议,但不幸的是,它没有用。我得到“Win32Exception: The network path was not found”,远程数据库在一个单独的系统上,而不是在我的本地或公司网络上。
    • 将 Connection Timeout=300 添加到您的连接字符串。这将等待 5 分钟以建立连接
    【解决方案2】:

    要让它第一次连接,看起来我需要添加“Network Library=DBMSSOCN;”在调试中连接。 t.b.h.,不知道为什么...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多