在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文件。
有人对这种限制有所了解吗?以及如何绕过它?
答案 0 :(得分:1)
默认情况下,服务在受限帐户下运行。
您需要在服务控制面板中将“运行方式”帐户设置为同时具有“作为服务运行”权限和您要访问的目录的权限的帐户。
编辑:
默认情况下,它还需要访问包含Access DB驱动程序DLL的目录,而IIRC则不包含该目录。
答案 1 :(得分:0)
Jet引擎仅适用于32位。尝试将Windows服务编译为x86!