windows服务中的Advantage Data Provider错误6097

本文关键字:Provider 错误 6097 Data Advantage 服务 windows | 更新日期: 2023-09-27 18:27:06

我有一个C#窗口服务,它在白天使用Quartz.net定期轮询ADS 9.10优势数据库。该窗口的服务仍在开发中,尚未上线。在测试框中,数据库每晚都会刷新。当数据库正在恢复时,windows服务会正确记录错误。一旦恢复完成,windows服务将继续正常运行几次,但随后会出现此错误。

错误:Advantage.Data_Provider.AdsException:错误6097:连接路径或ADS.INI文件中指定的IP地址或端口不正确。axServerConnect在Advantage.Data.Provider.AdsInternalConnection.Connect()在Advantage.Data.Provider.AdsPoolManager.GetConnection(字符串strConnectionString,AdsInteralConnection&internalConnection,AdsConnectionPool&pool)在Advantage.Data.Provider.AdsConnection.Open()

解决此问题的唯一方法是停止并启动服务。对我来说,这意味着一定有什么东西缓存了一个坏连接,我不理解,因为我正在围绕连接和命令进行C#USING包装,从而在连接完成后处理连接。我已经尝试关闭连接字符串中的连接池

AdsConnection.FlushConnectionPool(_connectionString)
AdsConnection.FlushConnectionPool()

请注意,我不使用ADS.ini文件,IP地址和端口号在连接字符串中。

一种解决方案可以是使用时间表任务,而不是石英工作。。。但我喜欢石英,所以我想解决这个问题。

windows服务中的Advantage Data Provider错误6097

重新启动服务以解决问题的要求可能是由于ADS客户端缓存了连接错误代码。我认为绕过错误代码缓存的唯一解决方案是在ADS.ini中使用RETRY_ADS_CONNECTS配置。ADS.ini文件可以与服务放在同一目录中。

当数据库在刷新时关闭,然后由ADS ado客户端缓存时,会返回6097错误。