title: Asp.net CMD security problem
body: <p>I am having trouble with permissions on Windows 2008 server. i have a command line utility that I need to run to convert some standard files to CSV files. That are in turn used to import data to my SQL database. I am able to get the done to work fine on my 2003 server but my windows 2008 server is not allowing the code to run. Below is a watered down version of the code. Basically in this example I am just trying to run a simple command. But I keep getting the output access denied. How do I correct this?</p>
  
  <pre><code>public partial class _Bank : System.Web.UI.Page
  {
  protected void Page_Load(object sender, EventArgs e)
  {
  
  }
  
  
  protected void btn_Click(object sender, EventArgs e)
  {
  
      ProcessStartInfo processStartInfo = new ProcessStartInfo("cmd.exe");
      processStartInfo.RedirectStandardInput = true;
      processStartInfo.RedirectStandardOutput = true;
      processStartInfo.UseShellExecute = false;
      processStartInfo.RedirectStandardError = true;  
  
      Process process = Process.Start(processStartInfo);
  
      if (process != null)
      {
  
         process.StandardInput.WriteLine("dir");
  
         process.StandardInput.Close();
         string outputString = process.StandardOutput.ReadToEnd();
         Response.Write(outputString);
  
         string error = process.StandardError.ReadToEnd();
         Response.Write(error);
  
      }
  
  }
  private string ProcessRunner()
  {
      ProcessStartInfo processStartInfo = new ProcessStartInfo("cmd.exe");
      processStartInfo.RedirectStandardInput = true;
      processStartInfo.RedirectStandardOutput = true;
      processStartInfo.UseShellExecute = false;
  
      Process process = Process.Start(processStartInfo);
  
      if (process != null)
      {
  
          //process.StandardInput.WriteLine("This is a test line");
          process.StandardInput.WriteLine("c:\\");
          process.StandardInput.WriteLine("This is a test line");
  
          process.StandardInput.Close(); // line added to stop process from hanging on     ReadToEnd()
  
          string outputString = process.StandardOutput.ReadToEnd();
          Response.Write(outputString);
          return outputString;
  
      }
  
      return string.Empty;
  }
  
  public static int ExecuteCommand(string Command, int Timeout)
  {
      int ExitCode;
      ProcessStartInfo ProcessInfo;
      Process Process;
  
      ProcessInfo = new ProcessStartInfo("cmd.exe", "/C " + Command);
      ProcessInfo.CreateNoWindow = true;
      ProcessInfo.UseShellExecute = false;
      Process = Process.Start(ProcessInfo);
      Process.WaitForExit(Timeout);
      ExitCode = Process.ExitCode;
      Process.Close();
  
      return ExitCode;
  }
  }
  </code></pre>