我用c#写了一个windows 服务,并把它打包到一个msi中。我在本机上执行msi后,能够访问这个windows服务,一切正常。我把这个msi copy到windows7上,也能正确安装这个服务。但是我的控制程序不能访问它,例如当我单击一个按钮,执行启动服务操作时。就会弹出错误对话-
"System.InvalidOperationException: Cannot open EnginuityICRClient service on computer '.'. ---> System.ComponentModel.Win32Exception: Access is denied"
这是什么原因呢?是需要在windows服务中设置什么属性,还是在msi中需要设置什么徐行!
默认的windows 服务的运行账号权限比较低,EnginuityICRClient估计需要高地权限吧
需要更改一下服务的运行账号就行services.msc中修改服务的登录账号或代码修改
谢谢。windows service我没有权限修改,我只有它的exe文件。刚才我试着在安装后的文件夹中,找到exe文件。然后单击右键选择”以管理员身份“运行,程序就能正确执行了。但是msi生成的快捷方式上右键,没有“以管理员身份运行”这个选项。请问这如何解决?
@华-子:为什么生成的快捷方式,没有“管理员身份运行”???
win7电脑有UAC的权限,你的服务应用程序没有启动时候没有这个权限。你需要添加“应用程序清单文件”。