ASP.NET запустить exiftool - PullRequest
       23

ASP.NET запустить exiftool

2 голосов
/ 11 декабря 2011

Я пытаюсь запустить exiftool.exe из ASP.NET, и я не могу запустить его из-за жизни.Я пытаюсь запустить этот код

По какой-то причине в ASP.NET он не выполняется.Любая и вся помощь будет принята с благодарностью !!

ОБНОВЛЕНО

Вот мой точный код, который я пытаюсь выполнить:

    ProcessStartInfo ExifTool = new ProcessStartInfo();
    Process process = new Process();

    ExifTool.FileName = @"C:\Windows\exiftool.exe";
    ExifTool.Arguments = "-b -previewimage " + " " + filepath;
    ExifTool.UseShellExecute = false;
    ExifTool.RedirectStandardOutput = true;
    ExifTool.CreateNoWindow = true;
    ExifTool.RedirectStandardError = true;
    ExifTool.LoadUserProfile = true;

    process.StartInfo = ExifTool;
    process.Start();

Сноваошибок нет, просто не выполняется.Теперь, если я запускаю файл через командную строку, а не через приложение asp.net, он работает просто отлично.

enter image description here

Ответы [ 2 ]

1 голос
/ 11 декабря 2011
Dim ExifToolOutput As StreamReader = ExifTool.StandardOutput

Прикрепил отладчик и увидел, что ExifToolOutput содержит ... но выдает какую-то ошибку командной строки. Неправильные параметры, путь или что-то, что не отображается как ошибка .NET.

Обновлено

Поскольку вы также используете C #, вот что вы можете попробовать:

ProcessStartInfo startInfo = new ProcessStartInfo();
Process process = new Process();

startInfo.FileName = @"ping";
startInfo.Arguments =  "-n 1 google.com";
startInfo.UseShellExecute = false;
startInfo.RedirectStandardOutput = true;
startInfo.CreateNoWindow = true;
startInfo.RedirectStandardError = true;
startInfo.LoadUserProfile = true;

process.StartInfo = startInfo;
process.Start();


var streamReader = process.StandardOutput as StreamReader;
var readToEnd = streamReader.ReadToEnd();
Console.WriteLine(readToEnd);

Когда я запускаю это, я получаю результат команды команды, распечатанный на консоли, вы должны иметь возможность сделать то же самое с переменной (с помощью отладки) или если вы реализовали некоторую регистрацию в своем приложении.

Тогда вы сможете увидеть, что происходит.

0 голосов
/ 11 декабря 2011

Ваш процесс ASP.NET AppPool работает как локальный процесс?Ему нужны права на выполнение других файлов.

...