繁体   English   中英

从C#Web应用程序中的命令提示符处执行命令

[英]Execute commands from command prompt in c# web application

我有一个C#Web应用程序,我想在其中一个接一个地执行Unix命令。 我希望出现命令提示符窗口,然后在每个命令执行之后,移至下一个命令,然后退出该窗口。 我已经尝试了以下方法,但是命令提示符窗口没有出现,并且每次等待后命令都没有执行

   public void connecterOne()
      {
      try
        {
            using (Process p = new Process())
            {
                // set start info
                p.StartInfo = new ProcessStartInfo("cmd.exe")
                {
                    RedirectStandardInput = true,
                    RedirectStandardOutput = true,
                    UseShellExecute = false,
                    WorkingDirectory = @"c:\"
                };
                // event handlers for output & error
                p.OutputDataReceived += p_OutputDataReceived;
                p.ErrorDataReceived += p_ErrorDataReceived;

                // start process
                p.Start();
                // send command to its input
                p.StandardInput.Write("ftp server" + p.StandardInput.NewLine);
               p.StandardInput.Write("username" + p.StandardInput.NewLine);
       p.StandardInput.Write("pwd" + p.StandardInput.NewLine);
                string output = p.StandardOutput.ReadToEnd();
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex);
        }
    }

    static void p_ErrorDataReceived(object sender, DataReceivedEventArgs e)
    {
        Process p = sender as Process;
        if (p == null)
            return;
        Console.WriteLine(e.Data);
    }

    static void p_OutputDataReceived(object sender, DataReceivedEventArgs e)
    {
        Process p = sender as Process;
        if (p == null)
            return;
        Console.WriteLine(e.Data);
    }

如何一一执行命令并打开命令提示符窗口,其中显示了正在执行的命令。 我没有收到任何错误,但是没有看到输出。

这是一个安全问题Web应用程序无法访问用户pc命令提示符,Web应用程序部署在Web服务器上的IIS上而不是用户pc上。

如果您运行一个进程,它将在该服务器上执行,但是您需要允许服务器执行这些命令。但是我认为这是一种不好的做法。

要在基于Linux的远程计算机上执行命令,您需要首先与ssh连接。 对于C#,您可以使用SSH.NET

另外, 本文可能会对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM