【发布时间】: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