Проблема при запуске paexe c со страницы ASP webForm в IIS - PullRequest
0 голосов
/ 30 апреля 2020

У меня проблема с запуском paexe c из IIS с использованием ASP страниц webForm.

Справочная информация: я создал приложение с использованием форм VS2017 Windows и правильно работает для сбора некоторых проверок работоспособности из удаленный сервер. Эта информация предоставляет релевантные данные о приложении, которое выполняется на этом сервере.

Приложение подключается к удаленному серверу, запускает команду, получает выходные данные, а затем другой объект считывает выходные данные, создает CSV, который позже. загружен в таблицу данных для представления пользователю в виде таблицы данных.

Теперь моя цель - я хочу преобразовать его в Web с помощью форм ASP (я совершенно новичок в ASP). Код, который это ошибка: (она отлично работает в windows формах)

public string getRTTEST(string rpc, string instance)
{
    string rttest = "";
    try
    {
        using (Process myProcess = new Process())
        {
            myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Normal;

            myProcess.StartInfo.FileName = "paexec.exe";
            myProcess.StartInfo.Arguments = @"\\" + rpc + @" rttest /cust " + instance;
            myProcess.StartInfo.UseShellExecute = false;
            myProcess.StartInfo.RedirectStandardInput = true;
            myProcess.StartInfo.RedirectStandardOutput = true;
            myProcess.EnableRaisingEvents = false;
            myProcess.Start();

            StreamWriter myStreamWriter = myProcess.StandardInput;
            string cmd1 = "status";
            string cmd2 = "quit";
            myStreamWriter.WriteLine(cmd1);
            myStreamWriter.WriteLine(cmd2);
            myStreamWriter.Close();
            myProcess.WaitForExit(3000);

            string rttestRAW = myProcess.StandardOutput.ReadToEnd();
            myProcess.Close();
            myProcess.Dispose();
            // createCSV
            FileManagement fm0 = new FileManagement();
            rttest = fm0.rttestCSV(rttestRAW);
        }
    }
    catch (Exception)
    {
        rttest = "error";
    }

    return rttest;
}

Проблема: при запуске из IIS создается пустой файл test.txt (Windows 2012R2), если я отладка в моем P C с использованием IIS Express, код работает, файл создается.

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

Вещи, которые я пробовал:

  • Я установил в коде олицетворение, чтобы он выполнялся как «я» с правами администратора, та же проблема.
  • I создали тестовое консольное приложение с кодом выше, и я просто позвонил Я с параметрами из кода, тот же вопрос. Однако здесь есть интересная часть, если я вручную открываю CMD и запускаю ее, она работает отлично. Если я вызываю это консольное тестовое приложение из IIS Express, оно также работает правильно.
  • Я установил StartInfo. домен / пользователь / безопасный пароль, чтобы убедиться, что он действительно работает как я, та же проблема.
  • Я искал более 5 дней другие способы запуска удаленных команд CMD на Windows без какого-либо успеха.

Другая информация, которая может иметь отношение: экземпляр собирается через OpenSubKey на тот же сервер, который, как я подтвердил, на самом деле происходит, поэтому олицетворение работает должным образом, так как для этого требуется мой доступ для чтения реестра.

В случае, если это полезно, вот мое событие onclick, которое выполняет приведенный выше код.

remoteConnection rc0 = new remoteConnection();
string rtTest = rc0.getRTTEST(remotePC, instanceName); //returns csv

Я готов полностью изменить этот код, перепроектировать его, использовать другой метод и т. Д. c. Буду очень признателен за любую идею, любую помощь, которую вы мне можете оказать.

Прикрепление изображения того, как оно выглядит, когда работает на IIS Express. enter image description here

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