加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

WebService 调用服务器上exe应用程序

发布时间:2020-12-17 01:07:59 所属栏目:安全 来源:网络整理
导读:? 最近在一个项目中用到这样的需求,需要PDA通过WebService来启动服务器上的一个exe应用程序,这个exe应用程序是有界面的。当我通过以下代码来启动这个exe时,问题出现了。程序并没有运行,但是在任务管理器里面却可以看到这个exe的进程。 ?服务端代码: ??
?

最近在一个项目中用到这样的需求,需要PDA通过WebService来启动服务器上的一个exe应用程序,这个exe应用程序是有界面的。当我通过以下代码来启动这个exe时,问题出现了。程序并没有运行,但是在任务管理器里面却可以看到这个exe的进程。

?服务端代码:

?? ?[WebMethod]
??? public bool Test()
??? {
??????? try
??????? {

??????????? Process ProgStock = new Process();
??????????? ProgStock.StartInfo.WorkingDirectory = AppDomain.CurrentDomain.BaseDirectory;? //应用程序所在目录
??????????? ProgStock.StartInfo.UseShellExecute = false;
??????????? ProgStock.StartInfo.RedirectStandardOutput = true;
??????????? ProgStock.StartInfo.CreateNoWindow = true;

??????????? ProgStock.StartInfo.FileName = "WindowsFormsServer.exe";? //执行程序完整路径
??????????? ProgStock.StartInfo.Arguments = "1";?? //参数
??????????? ProgStock.Start();

??????? ??? ProgStock.WaitForExit();

??????? }
??????? catch (Exception ex)
??????? {

??????????? throw ex;
??????? }
??????? return true;
??? }

解决的方法:

??? 在网上了很多方法,一般说aspnet权限不够,需要模拟administrator用户来启动exe,这是其中原因之一,但是仅仅这样还是不行。我试过了这个方法,虽然模拟administrator,在任务管理器里面这个exe的进程用户由aspnet变成了administrator,但是界面还是出不来。

幸运的是,终于找到了办法。

???? 修改“服务”。在“我的电脑”,右键“管理” ,选择“IIS Admin”服务,双击,选择“登录”,勾选“服务与桌面交互”

?

模拟Administrator用户:

在“C:WINDOWSMicrosoft.NETFrameworkv2.0.50727CONFIG”下面找到machine.config,编辑属性:

?<system.web>
??<processModel autoConfig="true"? userName="Administrator" password="****"/>

</system.web>

重启IIS服务就OK了!!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读