【问题标题】:Advantage Error 6082优势错误 6082
【发布时间】:2013-03-11 09:20:53
【问题描述】:

我正在创建一个 Windows 服务。此服务必须每天从 Advantage 数据库中读取一次数据。

我在我的计算机上复制了 Advantage 数据库,它工作正常,但是当我在服务器上尝试该服务时,出现以下错误:

“AdsException:错误 6082:加载 Advantage 本地服务器库时出错。”

根据文档 (link),我必须将 ADSLOC32.DLL 放在 \WINDOWS\SYSTEM 目录中。

我尝试过,但它不起作用。

有什么想法吗?

编辑:我创建了一个控制台应用程序,它执行与我的 Windows 服务完全相同的代码,并且它的工作方式与它应该的完全一样。看来问题出在我的服务上,但不知道是我的服务哪一部分出了问题……

编辑 2:我检查了进程监视器,我的服务没有尝试加载 adsloc32.dll,它尝试加载 adsloc64.dll。我没有找到 adsloc64.dll 文件,所以我将 adsloc32.dll 复制到我的应用程序目录并将其命名为 adsloc64.dll 但它不起作用。

【问题讨论】:

  • 对于 32 位 DLL,您应该始终使用 System32(32 位系统)或 SysWOW64(在 64 位系统上)而不是 System(旧的 16 位 Windows 目录)。该文档在这方面是不正确的。 msdn.microsoft.com/en-us/library/7d83bc18(v=vs.80).aspx
  • 好吧,Windows 仍然搜索 16 位目录,但只是为了向后兼容。见此链接:msdn.microsoft.com/en-us/library/windows/desktop/…
  • System32 和 SysWow64 中已经有一个 adsloc32.dll 文件。我尝试将该文件放入我的应用程序目录,但它仍然不起作用。

标签: c# .net advantage-database-server


【解决方案1】:

我找到了解决办法。

我使用来自Windows Sysinternals 的进程监视器来了解程序尝试从何处加载 dll 文件。 而且它不是在尝试加载 adsloc32.dll,而是在加载 adsloc64.dll。

我只是将 adsloc64.dll 文件放到我的应用程序目录中,它现在可以工作了。

【讨论】:

    【解决方案2】:

    尝试将 adsloc32.dll 放在与您的应用程序相同的目录中。可能是权限有问题

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-08
      • 2010-12-13
      • 2014-04-05
      相关资源
      最近更新 更多