我写了一个网站 然后网站里面去调用一个exe程序,这个exe程序用来关闭iis服务。
exe中关闭服务代码如下
ServiceController sc = new ServiceController("iisadmin");
if(sc.Status == ServiceControllerStatus.Running)
{
sc.Stop();
}
我如果不发布网站只是自己用vs运行调试的话可以关闭,但是把网站发布后,能调到exe
但是报如下错误:
无法打开计算机“.”上的 iisadmin 服务。
ServiceHandle “sc.ServiceHandle”引发了“System.InvalidOperationException”类型的异常 System.Runtime.InteropServices.SafeHandle {System.InvalidOperationException}
“System.InvalidOperationException: 无法打开计算机“.”上的 XXX 服务。
System.ComponentModel.Win32Exception: 拒绝访问"的错误,
win7的权限挺BC的!
???
你在本地调试用的管理员,当然可以关闭。我有一点很好奇,楼主在网站程序里调用关闭iis服务,真是太有意思了,就好像让别人来杀自己,关注。
1、在调用windows service之前我用 System.Security.Principal.WindowsIdentity.GetCurrent().Name.ToString();返回的是应用程序池的名称,
估计是要提升这个应用程序池的权限
在C:\inetpub\temp\appPools下面找到对应应用程序池的配置文件,是个XML文件,但是不会配啊2、配置<identity impersonate="true" username="" password=""/>
使用管理员用户名和密码但是还不行,难道要提升network service的权限吗?那不太不安全了??期待高见?
<identity impersonate="true" username="" password=""/>