2016-12-14 101 views
0

我嘗試從Windows客戶端連接到遠程PostgreSQL服務器。 當我使用「Dbeaver」連接到數據庫時,我需要填充網絡連接(SSH)並連接好。使用.NET中的SSH隧道連接到postgresql

我正在VB.NET中開發一個應用程序,該應用程序必須連接到數據庫,但是我無法使其變得可行。

我使用的是Devart dll連接數據庫和Renci.SshNet dll來連接服務器。

我已經成功,因爲日誌說連接到服務器,通過SSH明顯,但是當我嘗試連接到DDBB它拋出一個錯誤:

no hay una línea en pg_hba.conf para "xx.xx.xx.xxx", usuario "xxx", base de datos "xxxx", SSL inactivo

連接代碼是下一個:

Dim connectionInfo As New PasswordConnectionInfo(IP, USER, PASS) 
    connectionInfo.Timeout = TimeSpan.FromSeconds(30) 
    client = New SshClient(connectionInfo) 
    client.Connect() 
    Dim portFwld As New ForwardedPortLocal("127.0.0.1", Convert.ToUInt32(PORT_SSH), IP, Convert.ToUInt32(5432)) 
    client.AddForwardedPort(portFwld) 
    portFwld.Start() 
    Log(client.IsConnected) 
    Log(portFwld.IsStarted) 

client.IsConnected =真和portFwld.IsStarted =真

的錯誤是在這裏(當打開):

Dim myConnection As PgSqlConnection = New PgSqlConnection() 
       Try     
        myConnection.ConnectionString = "Server=" & IP & ";Port=5432;Database=" & BBDD_Postgre & ";User Id=" & USER & ";Password=" & PASS & ";" 
        myConnection.Open() 

我嘗試了很多組合,但沒有一個是有效的,我不知道還有什麼要看,我迷路了。我認爲如果「Dbeaver」可以從我的電腦連接,爲什麼我的應用程序不能?爲什麼我的服務器必須在pg_hba.conf中添加我的IP,如果沒有它「Dbeaver」運行?

回答

0

(發表於OP)

我的錯誤是把遠程IP在連接字符串時,它必須是「127.0.0.1」:

myConnection.ConnectionString = "Server=127.0.0.1;Port=5432;Database=" & BBDD_Postgre & ";User Id=" & USER & ";Password=" & PASS & ";"