用VS2010做了一个网页,调用了一个控制台程序。
使用文件系统的时候,所调用的控制台程序可以正常弹出并执行命令。
但是切到IIS,远程打开网页时,却弹出不出该控制台程序。请问是怎么回事?核心代码如下:
        TextBox1.Text = "10.17.XX.XX"
        TextBox1.Text2 = "ftpuser"
        //进入服务器/bin目录,并创建aa文件夹
        TextBox1.Text3 = "cd /bin/\nmkdir -p aa\n"
        Process pro = new Process();
        pro.StartInfo.CreateNoWindow = false;
        pro.StartInfo.FileName = @"D:\ConsoleTelnet.exe";
        //传给console的参数
        pro.StartInfo.Arguments = TextBox1.Text + ""  + TextBox2.Text + " "+ TextBox2.Text + " "+ TextBox3.Text;
        
        pro.Start();使用文件系统创建 default.aspx的时候,上面的代码运行正常,ConsoleTelnet.exe可以正常弹出并执行参数中的命令。网页做好后,发布到IIS,脱离开发环境,在其它PC上,使用http://192.168.1.100/default.aspx 打开网页后,却弹不出ConsoleTelnet.exe (通过观察服务器,实际上命令已经被执行,但就是ConsoleTelnet.exe弹不出来)
请问怎么解决?非常感谢!如果有办法把输入的命令实时打印到TextArea控件中也可以。(主要是查看命令的执行进度及返回信息。有些命令执行时间可能比较长)

解决方案 »

  1.   

    IIS有权限限制不能执行程序的,你试下给IIS设置个管理员用户
      

  2.   

    客户端怎么可能看到服务端的Console窗体呢?<-- 这个就别想了。服务端倒是可以获得Process上的OutputStream
    但客户端也很难在Process过程中时时获得Process中的信息。服务端异步获得Process的OutputStream内容并保存,客户端需要轮询服务端获取保存的信息。
    (Process.BeginOutputReadLine)
      

  3.   

    Process pro = new Process();
      pro.StartInfo.CreateNoWindow = false;
      pro.StartInfo.FileName = @"D:\ConsoleTelnet.exe";
    这个exe是不是服务器端执行的?
      

  4.   


    是在服务器端执行的。有办法吗?不管什么办法,只要能弹出这个ConsoleTelnet.exe就行。
    (或者,在网页上弄个TextBox显示出来telnet上命令的执行进度也行。不实时显示也可以,只要在执行完成后显示出来就可以了。)请各大侠帮忙想想办法吧。非常感谢!
      

  5.   

    真是异想天开
     
    想弹出来的话 只有一个方法  服务端放个bat 客户端直接下载打开
      

  6.   

    给iiS设置成管理员权限就OK了。但是这样随便谁访问你的IIS都拥有你的服务器管理员权限,只要会简单的dos命令就能随意操作你的服务器!
      

  7.   


    请问如何设置?我把IUSR_XX 、ASPNET和 IWAM_xx 都加到administrators组了,还是不行。在IIS中,右键网站,点属性,再点主目录,把权限设置为“脚本和可执行文件”,并且在后面的“配置”中也加了我的.exe文件,还是不行啊。(主目录中,能打勾的全打上了)至于说别人会攻击,一点不担心,公司是内网,与世隔绝,不怕。请看看哪个地方设置错了?还是没找对地方?谢谢!
      

  8.   

    既然弹不出.exe了,那就考虑把输出打印到TextArea中。请高手们给个例子,谢谢!