【问题标题】:Connection to Access database via Web API works fine when Web API is called locally, but exception on remote calls当本地调用 Web API 时,通过 Web API 连接到 Access 数据库工作正常,但远程调用异常
【发布时间】:2015-04-18 19:06:04
【问题描述】:

我有一个正在运行的 Web API 服务器。它可以在本地和远程访问,并正确返回表示对象列表的 JSON。

当我添加 Web API 连接到本地数据库(即与 Web API 在同一台机器上的数据库)并返回结果的附加步骤时,它在本地运行良好。但是,当此代码远程执行时(从非本地机器调用 Web API;数据库和 Web API 仍然驻留在同一台服务器上),Web API 服务器返回一个空 JSON 字符串(“[]”)。

返回以下错误:“Microsoft.ACE.OLEDB.12.0”提供程序未在本地计算机(服务器)上注册。问题是我无法安装数据连接组件来解决 iOS 设备上的问题...

Microsoft Access 数据库在做什么会导致此问题?

【问题讨论】:

  • 我质疑你认为错误在于 Microsoft Access 数据库的假设。
  • 本地调用 Web API 与远程调用 Web API 有什么区别?代码没有什么不同或任何东西。此外,Web API 可以很好地远程返回示例数据。是 Access 组件引入了问题。
  • 我添加了一个异常错误。
  • 听起来像是权限问题。在本地运行时,它可能使用您的凭据访问数据库,但在远程运行时,它被卡为 Web 服务,可能没有必要的访问权限(即文件系统上的文件权限或 Access db 中的帐户权限)。
  • 我是评论而不是回答,因为我不熟悉 Web API。但我会提出两个建议:首先,因为(如您所述)您无法在客户端上安装 ACE.OLEDB,您需要弄清楚为什么您的代码需要在客户端上安装 ACE.OLEDB。然后更改应用程序的设计,使需求不再存在。其次,如果您发布代码示例,您可能会在识别问题时获得一些帮助。

标签: c# json api ms-access asp.net-web-api


【解决方案1】:

这是一个常见问题,我们假设服务器包含与我们在本地使用的完全相同的实例,正如@Pierceboggan 所说,您需要安装所有与 Microsoft Access 相关的组件,在创建包时添加相关引用。

【讨论】:

    【解决方案2】:

    确保您已安装Data Connectivity Components已使用有效密钥安装 Microsoft Access。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-18
      • 2018-10-20
      • 2016-09-13
      相关资源
      最近更新 更多