在Windows服务中打开mdb文件

时间:2018-08-23 16:20:02

标签: .net windows ms-access service

在VS上调试时,我可以在应用程序(MS Access)中访问* mdb数据库,而不会遇到任何麻烦。在我们的旧数据交换应用程序中,作为Windows应用程序运行也可以正常工作。现在,我们将应用程序转换为Windows服务。在VS调试器中,一切也正常。但是当作为服务安装时,将无法访问.mdb数据库。 (技术:OLEDB连接,用vb.net和c#编码)

我总是收到错误消息,因为“文件不存在”: “ V:\ DES_TCP \ SW \ TestMDB \ DES_PdvData.mdb'不是有效的路径。请确保路径名拼写正确,并且已连接到文件所在的服务器。 这是错误的,在资源管理器中复制路径可以打开文件。

也已经尝试使用本地.mdb文件或以系统的另一个管理员帐户运行该服务。没有任何变化,无法访问。

我确实记得在15年以前,我们在IFix方面遇到了麻烦……制造商这次提出的解决方案只是启动IFix服务器驱动程序而不是将其作为服务...

似乎只能从服务访问mdb文件。

有人对这种限制有所了解吗?以及如何绕过它?

2 个答案:

答案 0 :(得分:1)

默认情况下,服务在受限帐户下运行。

您需要在服务控制面板中将“运行方式”帐户设置为同时具有“作为服务运行”权限和您要访问的目录的权限的帐户。

编辑:

默认情况下,它还需要访问包含Access DB驱动程序DLL的目录,而IIRC则不包含该目录。

答案 1 :(得分:0)

Jet引擎仅适用于32位。尝试将Windows服务编译为x86!