【问题标题】:Execute commands from command prompt in c# web application在 C# Web 应用程序中从命令提示符执行命令
【发布时间】:2018-11-29 06:28:36
【问题描述】:

我有一个 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);
    }

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

【问题讨论】:

  • 你想在服务器上执行那些命令,对吧?
  • 我觉得有问题.. cmd.exe on unix?听起来很尴尬..你是说窗口服务器还是什么??
  • 我想从 cmd 执行命令
  • 来自下面的评论:“但我没有看到打开的命令提示框和正在添加的命令” - 你为什么会这样?你希望在哪里看到这个?在 ASP.NET 服务器机器上?

标签: c# command-prompt


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    另外,这个article 可能会对你有所帮助。

    【讨论】:

    猜你喜欢
    • 2017-02-28
    • 1970-01-01
    • 1970-01-01
    • 2011-10-26
    • 2011-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多