Windows 服务中的 Advantage 数据提供程序错误 6097

Posted

技术标签:

【中文标题】Windows 服务中的 Advantage 数据提供程序错误 6097【英文标题】:Advantage Data Provider Error 6097 in a windows service 【发布时间】:2015-12-15 22:17:33 【问题描述】:

我有 C# windows 服务,它在白天使用 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,AdsInternalConnection& internalConnection,AdsConnectionPool& 池) 在 Advantage.Data.Provider.AdsConnection.Open()

解决此问题的唯一方法是停止并启动服务。对我来说,这意味着必须缓存一个错误的连接,我不明白,因为我正在围绕连接和命令执行 C# USING 包装器,从而在连接完成后处理连接。我试过关闭连接字符串中的连接池

AdsConnection.FlushConnectionPool(_connectionString)
AdsConnection.FlushConnectionPool()

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

一种解决方案可能是使用计划任务而不是石英作业......但我喜欢石英,所以我想解决这个问题。

【问题讨论】:

【参考方案1】:

需要重新启动服务来解决问题可能是由于caching of error code by ADS client。我认为唯一的解决方案是使用帮助文件中描述的 ads.ini 文件。 ads.ini 文件可以放置在与服务相同的目录中。

数据库刷新后被ADS ado客户端缓存后可能返回6097错误。

【讨论】:

以上是关于Windows 服务中的 Advantage 数据提供程序错误 6097的主要内容,如果未能解决你的问题,请参考以下文章

优势错误 6082

Advantage 数据库中的分页

Advantage 数据库服务器 ORDER BY 行为

客户端通信层从 Advantage 数据库服务器接收到的数据比预期的要多

如何防止 Advantage Database 连接超时?

Advantage 和 PHP - 错误 6303:超过最大 Advantage 数据库服务器连接数