我有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(String strConnectionString,AdsInternalConnection& internalConnection,AdsConnectionPool& pool) 在Advantage.Data.Provider.AdsConnection.Open()
解决此问题的唯一方法是停止并启动该服务。对我来说,这意味着必须缓存一个糟糕的连接,我不明白,因为我在连接和命令周围做了C#USING包装,因此在连接完成后处理连接。我已经尝试关闭连接字符串中的连接池
AdsConnection.FlushConnectionPool(_connectionString)
AdsConnection.FlushConnectionPool()
请注意,我没有使用ADS.ini文件,IP地址和端口号都在连接字符串中。
一个解决方案可能是使用计划任务而不是石英工作...但我喜欢石英,所以我想解决这个问题。
答案 0 :(得分:1)
重新启动服务以解决问题的要求可能是由于caching of error code by ADS client。我认为唯一的解决方案是使用帮助文件中描述的ads.ini文件。 ads.ini文件可以放在与服务相同的目录中。
在刷新数据库然后由ADS ado客户端缓存时,可能会返回6097错误。