Выполните команды из командной строки в веб-приложении c # - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть веб-приложение на C #, в котором я хочу выполнять команды 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);
    }

Как выполнить команды одну за другой и открыть окно командной строки, которое показываеткоманды выполняются.Я не получаю никаких ошибок, но вывод не виден.

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018

Чтобы выполнить команду на удаленном компьютере под управлением Linux, вам необходимо сначала подключиться с помощью ssh.Для C # вы можете использовать SSH.NET

Кроме того, эта статья может вам помочь.

0 голосов
/ 29 ноября 2018

Это проблема безопасности. Веб-приложение не имеет доступа к командной строке ПК пользователя. Веб-приложение, развернутое в IIS на веб-сервере, а не на ПК пользователя.

Если вы запустите процесс, он будет выполняться на этом сервере.сервер, но вам нужно разрешить серверу выполнять эти команды. Но я думаю, что это плохая практика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...