VB.NET在IIS服务器发布网页之后,无法调用服务器上的exe程序

DEJUNFAN 2017-05-02 08:55:17
目前使用VB.NET制作网页,用户点击网页上一个按钮,可以启动服务器上的一个exe程序(自己写的控制台应用程序),程序代码如下:
Dim WshShell As Object
Dim IsSuccess As Object
Dim exefile As String = Server.MapPath("~\ConsoleApplication1.exe")
WshShell = CreateObject("Wscript.Shell")
IsSuccess = WshShell.Run(exefile, 1, True)
在vs2010中调试可以成功运行程序,发布后,通过到IIS服务器访问网页的时候,网页显示一直在请求,在任务管理器中能够看到程序在进程中,120秒之后,网页停止请求,程序随之停止了。

为此做了以下实验:

自己写的控制台应用程序(ConsoleApplication1.exe)是想要打开打开一个三维设计软件(solidworks二次开发),在程序中没有用户交互界面。整个程序的工作流程是这样的:双击exe,则自动打开三维软件,三维设计软件根据exe的代码自动完成相应的功能后自动退出去,exe也停止运行。在网页调试可以,发布到IIS服务器之后不能正常运行,现象在前边已经说过。

于是我把exe程序修改的简单一些:只是打开指定文件夹下的一的txt文档,并在里边写上几句话,如果可以正常运行该exe则在txt文档中出现相应的文字。
此时在网页调试可以,发布到IIS服务器之后也可以正常运行。

所以想到是不是因为exe要调用其他程序所以无法在IIS服务器上运行了呢?因为修改了exe之后就可以运行了,希望可以得到大家的帮助,不胜感激。
...全文
490 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
VB.Net 2017-05-12
  • 打赏
  • 举报
回复
会不会是权限问题,因为系统中的程序一般是赋予了管理员或者user权限,而网页访问的权限是internet来宾权限。
DEJUNFAN 2017-05-05
  • 打赏
  • 举报
回复
因为修改之后的exe可以达到想要的效果,而且此exe与修改之前存放的位置、调用的方式和路径都一样的,说明权限已经赋予成功了。
DEJUNFAN 2017-05-05
  • 打赏
  • 举报
回复
引用 3 楼 CityBird 的回复:
改成: IsSuccess = WshShell.Run(exefile, 1, False) 试试 或者 增大脚本超时时间设置
谢谢你的回答!WshShell.Run()函数中的true或者false是控制网页代码是否在运行完exe之后再执行网页代码的,我按照你说的试了一下还是没有生成相应的结果文件。与之前相同的情况: 在服务器上的任务管理器中可以看到该exe和三维软件(solidworks)的运行,但是在网页请求120s之后就自动断开了,我的这个exe程序运行不到60s就可以运行结束的,不需要120s,这个120s应该是IIS服务器默认的超时时间。
三楼の郎 2017-05-05
  • 打赏
  • 举报
回复
改成: IsSuccess = WshShell.Run(exefile, 1, False) 试试 或者 增大脚本超时时间设置
DEJUNFAN 2017-05-04
  • 打赏
  • 举报
回复
自己帮顶,求助各位,希望可以得到各位的指点。

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧