пытается передать имя файла со страницы aspx в console.exe - PullRequest
0 голосов
/ 16 марта 2010

я хочу передать значение метки или текстового поля на странице aspx в приложение console.exe так что если значение равно sample.doc, оно меняется на это.

я звоню со страницы aspx с

   string f = TextBox1.Text;

    System.Diagnostics.Process.Start("C:/DocUpload/ConsoleApplication1.exe", f);

Я попытался преобразовать строку, а затем использовать строку vatiable вместо файла sample.doc, но не повезло

object FileName = System.IO.Path.Combine (ExecutableFileInfo.DirectoryName, "sample.doc");

любая помощь или идеи будут приветствоваться. спасибо

Ответы [ 2 ]

0 голосов
/ 16 марта 2010

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

Если это так, вам нужно указать полный путь к файлу, например:

Process.Start(@"C:\DocUpload\ConsoleApplication1.exe", 
              Path.Combine(@"C:\path\to\folder", TextBox1.Text));
0 голосов
/ 16 марта 2010

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

        Process         proc                = new Process();
        StringBuilder   sb                  = new StringBuilder();
        string[]        aTarget             = target.Split(PATH_SEPERATOR); 
        string          errorMessage;
        string          outputMessage;

        foreach (string parm in parameters)
        {
            sb.Append(parm + " ");
        }

        proc.StartInfo.FileName                 = target;
        proc.StartInfo.RedirectStandardError    = true;
        proc.StartInfo.RedirectStandardOutput   = true;
        proc.StartInfo.UseShellExecute          = false;
        proc.StartInfo.Arguments                = sb.ToString();

        proc.Start();

        proc.WaitForExit
            (
                (timeout <= 0)
                ? int.MaxValue : (int)TimeSpan.FromMinutes(timeout).TotalMilliseconds
            );


        errorMessage    = proc.StandardError.ReadToEnd();
        proc.WaitForExit();

        outputMessage   = proc.StandardOutput.ReadToEnd();
        proc.WaitForExit();

Ссылка на MSDN:

http://msdn.microsoft.com/en-us/library/system.diagnostics.process.start.aspx

Вам также необходимо убедиться, что учетная запись, под которой работает веб-приложение, имеет соответствующие разрешения для запуска программы.

...