做了个WebApplication,代码如下:ServiceController lServiceController = new ServiceController(mServiceName);
lServiceController.MachineName = Environment.MachineName;
... ...
lServiceController.Start();
调试走到lServiceController.Start();的时候报错:无法打开计算机**上的**服务。网上查了原因,可能是需要管理权限来启动和停止,可怎么获得管理权限呢?
lServiceController.MachineName = Environment.MachineName;
... ...
lServiceController.Start();
调试走到lServiceController.Start();的时候报错:无法打开计算机**上的**服务。网上查了原因,可能是需要管理权限来启动和停止,可怎么获得管理权限呢?
1. 取决于你的service的性质,考虑修改service 的DACL,允许NETWORK SERVICE来启动service。
如果我记得没错的话,可以使用SC 命令修改service DACL。
2. 开一个web service或scheduled task,该web service负责这种需要高权限的操作。将这个web service配置run在一个用户的app pool下。然后你的web app 调用这个web service。