如果我的二进制文件是从命令行启动的(在Windows 7中)它能够访问远程服务器的数据库但是如果相同的二进制文件是由另一个二进制文件启动的,这是我提供的服务,它不能访问该数据库。
我的服务作为本地系统运行。当我试图将命令行更改为SYSTEM用户时,我的二进制文件也能够访问远程服务器的数据库。
答案 0 :(得分:0)
您的流程很可能失败,因为它是从其他用户上下文启动的。进程继承其父进程(启动它的进程)的用户上下文。这就是它从命令行启动时成功的原因,但是从服务启动时失败了。您的服务可能在cmd.exe的不同(且更有限)用户帐户下运行。