У меня есть приложение веб-API, которое должно запускать скрипт Python, который, в свою очередь, запускает скрипт Perl :) делает некоторые другие данные и получает от него выходные результаты. Как я сделать это с началом процесса:Разница между запуском процесса с помощью приложения Console и приложения ASP.NET
var start = new ProcessStartInfo()
{
FileName = _pythonPath, //@"C:\Python27\python.exe",
Arguments = arguments, //@"D:\apps\scripts\Process.py
UseShellExecute = false,
RedirectStandardOutput = true,
RedirectStandardError = true
};
using (Process process = Process.Start(start))
{
using (StreamReader reader = process.StandardOutput)
{
var result = reader.ReadToEnd();
var err = process.StandardError.ReadToEnd();
process.WaitForExit();
return result;
}
}
Сценарий внутри пытается подключиться к серверу, используя Perforce P4 Python API, а затем скрипт Perl вызова команды P4, а также. При запуске этого кода из приложения консоли все идет хорошо. Программа автоматически получает настройки Perforce (у меня есть клиент P4V со всеми указанными настройками). Но при запуске из веб-интерфейса ASP.NET он не получает настройки и говорит, что он не может согласиться: 1666 сервер (я думаю, это стандартное значение, если не указано назначение).
Я понимаю, что не так много людей используют Perforce, особенно таким образом и могут помочь здесь, но хотели бы знать, в чем разница между запуском этого скрипта из приложения Console и приложения веб-API, которые могут привести к другому поведению ,
Какая учетная запись пользователя находится в пуле приложений? Попробовали ли вы запускать консольное приложение в * этой * учетной записи, а не в своей собственной (или попробуйте настроить пул приложений для запуска под своей учетной записью)? –
О да, вы правы! Когда я использовал свой аккаунт для пула приложений, он работал. Я действительно пропустил эту возможность, спасибо. Теперь вопрос состоит в том, чтобы как-то указать эти переменные Perforce для учетной записи пула приложений, но я думаю, что это не относится к .NET :). Возможно, вы можете создать ответ, чтобы я мог его принять? – MyUserName
Не могли бы вы просто передать переменные Perforce в скрипт вместо того, чтобы читать их из среды пользователя? –