1

我正在开发一个在远程服务器 (LAN) 上查询 SQL Server 2008 Express 实例的 C# 应用程序。

当我在我的工作站/开发机器上时,我可以打开 SQL Server Management Studio 并通过 Windows 身份验证连接到 SQL 实例,并且出于所有意图和目的,体验与在“在”服务器上的 SSMS 中工作相同。据我所知,我可以从我的工作站做任何我可以在服务器上做的事情。

同一台服务器托管一个 Access 2003 .mdb 文件,该文件在 SQL 实例中设置为链接服务器。

有问题的查询返回通过连接来自 SQL db 和 Access db 的表编译的结果集。

当我在服务器“上”执行查询时,也就是说我在服务器机器上运行 SQL Server Management Studio,一切都按预期工作。但是,当我尝试从我的开发机器运行相同的查询时,无论是在 SSMS 中还是在尝试运行集成测试或调试应用程序时,我都无法对链接服务器执行任何操作。我可以在 SSMS 中看到它,但是任何执行任何操作的尝试都会导致:

无法为链接服务器“ <DatabaseName>”初始化 OLE DB 提供程序“Microsoft.Jet.OLEDB.4.0”的数据源对象。

我查看了许多与此错误相关的线程,并尝试了许多提供程序设置的排列,但都无济于事。

  • Access DB 没有密码(我尝试将安全性设置为使用名称“Admin”无密码)
  • 工作站用户帐户对 Access DB 所在的服务器目录具有完全权限
  • 服务器与 Win XP Pro SP3 和现在 Win Server 2003 的行为相同
  • 客户端与 Win XP Pro SP3 和现在 Win 7 Pro x32 的行为相同

在服务器上工作得很好,从不远程。

非常感谢帮助。

4

1 回答 1

1

正如 Burnsys 所建议的那样,使用 SQL Server 身份验证而不是 NT Auth 似乎可以解决问题。这件事的原因似乎是一个悬而未决的问题。

于 2010-02-02T16:28:30.427 回答