У меня проблема с запуском 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.