添加用户名时,ODBC SSPI连接失败

问题描述:

我在使用Windows身份验证(SSPI)为Odbc PostgreSQL连接的uid = in连接字符串中插入值时收到异常。添加用户名时,ODBC SSPI连接失败

错误:

Connection problem: System.InvalidOperationException: The connection was not closed. The connection's current state is connecting. 
    at System.Data.ProviderBase.DbConnectionClosedConnecting.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) 
    at System.Data.ProviderBase.DbConnectionInternal.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) 
    at System.Data.Odbc.OdbcConnection.Open() 
    at ConsoleApplication1.Program.TestMethod(String connectionMethod) 

代码(在程序中打开()的第一次调用,因为拉编写了用于测试):

try 
     { 
      using (OdbcConnection connection = new OdbcConnection(odbc_connection_string)) 
      { 
       connection.Open(); 
      } 
     } 
     catch (Exception ex) 
     { 
      System.Diagnostics.Trace.WriteLine("Connection problem: " + ex); 
      odbc = false; 
     } 

连接字符串:

odbc_connection_string = "[email protected];Driver={PostgreSQL Unicode};database=hostdb-4.2.0;server=localhost;port=5432;Trusted_Connection=yes"; 

Npgsql连接允许输入用户名:

npgsql_connection_string = "Server=localhost;Port=5432;Database=hostdb-4.2.0;User [email protected];Integrated Security=true;"; 
+0

尝试在不使用'使用(.....)'的情况下发生的情况声明OdbcConnection,然后将其打开。我想你正在使用Pwd =你的密码 – McNets

+0

它表现出相同的行为。 –

我不知道为什么我显示InvalidOperationException错误。通常我得到AccessViolationExceptions。

其中一个psqlodbc 9.3驱动程序是此问题的来源。我将psqlodbc驱动程序更改为9.5.4,并且能够在uid字段中输入值。