0

我想将 aspx 页面中的标签或文本框的值传递给 console.exe 应用程序,这样如果值为 sample.doc,它就会更改为该值。

我从 aspx 页面调用

   string f = TextBox1.Text;

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

我尝试转换为字符串,然后使用字符串变量代替 sample.doc 但没有运气

对象文件名 = System.IO.Path.Combine(ExecutableFileInfo.DirectoryName, "sample.doc");

欢迎任何帮助或想法。感谢你

4

2 回答 2

0

这是我用来从调用应用程序启动进程的方法。由于您是从网络应用程序调用它,因此您需要确保您具有适当的权限。

        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

您还需要检查以确保运行 Web 应用程序的帐户具有执行程序的适当权限。

于 2010-03-16T00:19:34.993 回答
0

您可能正在尝试处理位于不同文件夹中的文件。

如果是这样,您需要传递文件的完整路径,如下所示:

Process.Start(@"C:\DocUpload\ConsoleApplication1.exe", 
              Path.Combine(@"C:\path\to\folder", TextBox1.Text));
于 2010-03-16T00:21:17.377 回答