Выполнение Командной строки от страницы ASPX и возврат вывода к странице

Вы можете полностью удалить файл package-lock.json (а также node_modules). Они будут восстановлены, когда вы запустите npm install.

10
задан Shadow The Princess Wizard 28 May 2014 в 13:50
поделиться

4 ответа

У Вас есть проблема с синтаксисом параметров командной строки к cmd.exe. Поэтому cmd никогда не выходит.
Чтобы иметь cmd.exe, запускает программу и затем выход, необходимо отправить ему синтаксис "/c [команда]". Попытайтесь выполнить тот же код со строкой

        si.StartInfo.Arguments = "dir";

замененный

        si.StartInfo.Arguments = "/c dir";

и посмотрите, работает ли это.

9
ответ дан 4 December 2019 в 00:27
поделиться

Скорее всего, Ваша проблема с полномочиями. Пользователь, при которых выполнениях процесса ASP.NET с очень ограниченными правами.

Так, или необходимо установить верные полномочия для того пользователя или выполнить ASP.NET при некотором другом пользователе.

Это скрывает угрозы безопасности, хотя, таким образом, необходимо быть очень осторожными.

3
ответ дан 4 December 2019 в 00:27
поделиться

Это - безумие! Используйте Систему. IO namepace для создания списка файлов из программы C#! Очень легко сделать; хотя эта техника также имеет проблемы авторизации.

0
ответ дан 4 December 2019 в 00:27
поделиться

Используйте систему. Диагностика. Процесс.

Вот некоторый код ASP.NET, выходящий из оболочки для выполнения команд подверсии на командной строке.

    ///////////////////////////////////////////////////////////////////////
    public static string run_svn(string args_without_password, string svn_username, string svn_password)
    {
        // run "svn.exe" and capture its output

        System.Diagnostics.Process p = new System.Diagnostics.Process();
        string svn_path = Util.get_setting("SubversionPathToSvn", "svn");
        p.StartInfo.FileName = svn_path;
        p.StartInfo.UseShellExecute = false;
        p.StartInfo.RedirectStandardOutput = true;
        p.StartInfo.RedirectStandardError = true;

        args_without_password += " --non-interactive";
        Util.write_to_log ("Subversion command:" + svn_path + " " + args_without_password);

        string args_with_password = args_without_password;

        if (svn_username != "")
        {
            args_with_password += " --username ";
            args_with_password += svn_username;
            args_with_password += " --password ";
            args_with_password += svn_password;
        }

        p.StartInfo.Arguments = args_with_password;
        p.Start();
        string stdout = p.StandardOutput.ReadToEnd();
        p.WaitForExit();
        stdout += p.StandardOutput.ReadToEnd();

        string error = p.StandardError.ReadToEnd();

        if (error != "")
        {
            Util.write_to_log(error);
            Util.write_to_log(stdout);
        }

        if (error != "")
        {
            string msg = "ERROR:";
            msg += "<div style='color:red; font-weight: bold; font-size: 10pt;'>";
            msg += "<br>Error executing svn.exe command from web server.";
            msg += "<br>" + error;
            msg += "<br>Arguments passed to svn.exe (except user/password):" + args_without_password;
            if (error.Contains("File not found"))
            {
                msg += "<br><br>***** Has this file been deleted or renamed? See the following links:";
                msg += "<br><a href=http://svn.collab.net/repos/svn/trunk/doc/user/svn-best-practices.html>http://svn.collab.net/repos/svn/trunk/doc/user/svn-best-practices.html</a>";
                msg += "<br><a href=http://subversion.open.collab.net/articles/best-practices.html>http://subversion.open.collab.net/articles/best-practices.html</a>";
                msg += "</div>";
            }
            return msg;
        }
        else
        {
            return stdout;
        }
    }
0
ответ дан 4 December 2019 в 00:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: