Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 打开连接时出现ODBC连接问题_C#_Service_Odbc - Fatal编程技术网

C# 打开连接时出现ODBC连接问题

C# 打开连接时出现ODBC连接问题,c#,service,odbc,C#,Service,Odbc,我运行的windows服务有一些问题。我已经创建了一个新的测试服务,它创建了一个ODBCConnection,其中包含一个连接字符串,我已经多次验证该字符串是否正确。无论何时调用Open()方法,都会出现以下错误: Error: System.Data.Odbc.OdbcException (0x80131937): ERROR [08001] [Simba][SimbaEngine ODBC Driver][DRM File Library]Invalid account na

我运行的windows服务有一些问题。我已经创建了一个新的测试服务,它创建了一个ODBCConnection,其中包含一个连接字符串,我已经多次验证该字符串是否正确。无论何时调用Open()方法,都会出现以下错误:

Error: System.Data.Odbc.OdbcException (0x80131937): ERROR [08001] [Simba][SimbaEngine ODBC         Driver][DRM File Library]Invalid account name.
ERROR [IM006] [Microsoft][ODBC Driver Manager] Driver's SQLSetConnectAttr failed
ERROR [01000] [Microsoft][ODBC Driver Manager] The driver doesn't support the version of ODBC    behavior that the application requested (see SQLSetEnvAttr).
at System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode retcode)
at System.Data.Odbc.OdbcConnectionHandle..ctor(OdbcConnection connection, OdbcConnectionString     constr, OdbcEnvironmentHandle environmentHandle)
at System.Data.Odbc.OdbcConnectionOpen..ctor(OdbcConnection outerConnection, OdbcConnectionString connectionOptions)
at System.Data.Odbc.OdbcConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection   owningConnection, DbConnectionOptions userOptions)
at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions)
at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
at System.Data.ProviderBase.DbConnectionClosed.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()
我的服务以32位模式运行,DSN是在32位ODBC管理工具中创建的。我能够使用具有相同连接字符串的ODBC测试仪进行连接。我还可以通过命令提示符运行该服务,它将完美地工作。我曾尝试以具有最高权限的用户身份运行该服务,但没有任何帮助。有人知道是什么导致了这一切吗

下面是正在运行的代码。我将其他因素排除在外,这是非常基本的:

string connectionString = "verified connection string";
string query = "random query I know works";
OdbcConnection c = new OdbcConnection(connectionString);
 try
    {
        elog.WriteEntry("Opening odbc connection...", EventLogEntryType.Information);
        c.Open();
        elog.WriteEntry("Opened odbc connection...", EventLogEntryType.Information);
    }
    catch
    {
        c.Dispose();
        throw;
    }

你能把代码显示在你想连接的地方吗?ODBC测试仪是什么意思?您是否通过
控制面板->管理工具->数据源(ODBC)
(您的意思是?)设置了ODBC连接,然后进行了相应的设置?测试连接正常吗?是的,除了我使用32位ODBC管理器而不是数据源(ODBC),我做了所有这些,因为后者是64位版本