想通过WebService来启动服务器上的一个exe应用程序(这个exe是有用户界面的)。
[WebService]
public void Test()
{
Process.Start("E://FormsServer.exe");
}
出现的问题:
程序没有启动,但是在任务管理器里面可以看到这个exe的进程,用户是aspnet。
我试过的方法:
1,把exe放到webService目录下,并且允许写入的权限。在文件夹上添加了aspnet所有权限。
2,IIS使用的是windows身份验证,客户端添加了NetworkCredential,使用的是administrator账户。
3,在服务里面把“ASP.NET 状态服务”登录设置“允许与桌面交互”
4,在网上有看资料,通过webService,默认是使用aspnet用户,这个用户的权限比较低。必须模拟一个更高的用户。
我在web.config里面模拟里管理员帐户。
<identity impersonate="true" userName="58f7ef23d0c0460\Administrator" password="***" />
但是好像不成功,因为我在任务管理器里面看到exe进程的用户还是aspnet。
请各位帮帮我,提前感谢。
[WebService]
public void Test()
{
Process.Start("E://FormsServer.exe");
}
出现的问题:
程序没有启动,但是在任务管理器里面可以看到这个exe的进程,用户是aspnet。
我试过的方法:
1,把exe放到webService目录下,并且允许写入的权限。在文件夹上添加了aspnet所有权限。
2,IIS使用的是windows身份验证,客户端添加了NetworkCredential,使用的是administrator账户。
3,在服务里面把“ASP.NET 状态服务”登录设置“允许与桌面交互”
4,在网上有看资料,通过webService,默认是使用aspnet用户,这个用户的权限比较低。必须模拟一个更高的用户。
我在web.config里面模拟里管理员帐户。
<identity impersonate="true" userName="58f7ef23d0c0460\Administrator" password="***" />
但是好像不成功,因为我在任务管理器里面看到exe进程的用户还是aspnet。
请各位帮帮我,提前感谢。
您好,谢谢您的回复。我按照你的方法试了,界面还是出不来,任务管理器中可以看到这个程序的进程。是不是还要设置什么东西?
在“服务”里面找到“IIS Admin”,双击,“登录”,勾选“服务与桌面交互”。重启iis。
只要这样设置,不要去模拟administrator用户来调用iis方法了,使用匿名访问就可以了。但是为了安全起见,建议还是加上用户验证