日期:2014-05-17  浏览次数:20444 次

抓狂了!!!大虾们快现身啊~~~
我想在客户端调用服务器端的应用程序。使用了Process类,在VS中可以成功运行,在iis 中无法运行。
关于这个问题,我在论坛上找了很多帖子,大家都有相同的疑惑,但是没有一个答案能真正解决这个问题。

到底是权限问题还是什么?
如果是,应该如何设置权限?
或者,怎样通过activeX来实现调用???


求大虾详解!!!!!!!!!!!!






------解决方案--------------------
什么异常?

vs中运行asp.net app的用户是当前登录用户,很有可能是管理员。
IIS中是运行asp.net app的用户是network service(IIS6)或者ASPNET(IIS5).权限更小些。但是可以用impersonate设置成其他用户权限: <IDENTITY impersonate="true" userName="accountname" password="password" />
------解决方案--------------------
你在IIS上的站点不是有一个应用程序池么,在对应的应用程序池里面有一个用户的配置,将这个站点的执行用户改为一个有权限执行Process()的用户就可以了。


另外,一般情况下不建议使用impersonate="true",尤其是在非指明用户和Windows身份认证的情况下,这种情况如果出现跨机器认证,就有可能引发KERBOS的问题,这个Kerbos是坑爹的玩意,配死人的
------解决方案--------------------
你先搞清楚,你是要运行服务器端的exe还是客户端的?
运行服务器端的,Process类是可以,在网站的应用程序池里面的标识中,选择本地系统帐号或者输入管理员身份飞账户

运行客户端的,才使用ActiveX或者浏览器自定义协议实现