Мне не ясно, является ли это приложением ASP.NET или Winforms. Если Winforms то ...
using (Process p = new Process())
{
p.StartInfo.RedirectStandardOutput = false;
p.StartInfo.FileName = @"C:\foo.pdf";
p.StartInfo.UseShellExecute = true;
p.Start();
p.WaitForExit();
}
... будет нормально работать.
Если это ASP.NET MVC, вы должны посмотреть на тип FileResult и метод File контроллера ...
public ActionResult GetFile()
{
return File("foo.pdf", "application/pdf");
}
... поскольку это именно то, для чего это нужно.