我们正在运行我们作为Windows服务的应用程序的一部分,它需要B,能够按顺序访问通过ODBC导入的DSN。 不过似乎有很多,通过试验和错误上它可以访问什么的DSN发现限制。 例如它似乎不能1.访问系统DSN,除非运行该服务的帐户具有管理员权限。 (我得到一个访问被拒绝错误,尝试连接时)2.访问,是由不同的用户创建了一个用户DSN(这个是可以理解的)。 3.通过网络访问一个文件DSN
我读过一个文件DSN的目的是允许其他计算机使用它来连接,但是我似乎无法使这项工作。
因此,没有任何知道,或者知道我可以找出所有关于访问一个DSN的规则和限制使用Windows服务时。 谢谢
这是什么地方你的#1和#2之间:有时正确的文件权限也是必要的。 我曾经有一个Vista计算机上的麻烦连接到DB2 DSN因为,无论出于何种原因(也许写出来的临时文件;虽然我不知道为什么会在这个位置,而不是用户特定的一个做这样的事) ,司机需要到IBM已经安装在客户端二进制文件和库,它已被管理员完成,是在C盘的根目录的写入权限。
我想你已经发现自己的三个主要规则。 :-)
除了你可能并不需要为您的服务帐户管理员权限。 IANANA(我不是一个网络管理员),但您的服务帐户可能只是需要将ODBC文件或目录的一个读访问。
你不能用一个服务连接映射驱动器。 映射的驱动器必须与内存称为桌面堆栈跟踪桌面上的图标进行交互。 服务没有访问该存储器。 如果你必须使用一个DSN创建systemdsn。 更好的办法是使用一个连接字符串,并将其存储在App.config并使用加密API加密的用户名和密码。