ASP.NET Web应用程序无法从IIS 7.5打开Adobe Reader

时间:2017-02-08 19:05:22

标签: c# asp.net pdf iis adobe-reader

我正在为我公司内部使用的网页编程。

它应该动态创建PDF文档,然后将它们发送到办公室打印机。

我使用的代码是:

string processFilename = Microsoft.Win32.Registry.LocalMachine
.OpenSubKey("Software")
.OpenSubKey("Microsoft")
.OpenSubKey("Windows")
.OpenSubKey("CurrentVersion")
.OpenSubKey("App Paths")
.OpenSubKey("AcroRd32.exe")
.GetValue(String.Empty).ToString();

ProcessStartInfo info = new ProcessStartInfo();
info.Verb = "open";
info.FileName = processFilename;
info.Arguments = String.Format(@"/t ""{0}"" ""{1}""", pdfFilePath, PrinterSettings.InstalledPrinters[0]);
info.CreateNoWindow = true;
info.WindowStyle = ProcessWindowStyle.Hidden;
info.UseShellExecute = false;

Process p = Process.Start(info);
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;

p.WaitForInputIdle();

System.Threading.Thread.Sleep(6000);
if (false == p.CloseMainWindow())
{

    p.Kill();

}

它通过注册表找到adobe acrobat reader所在的位置,并使用/t的参数打开它,该参数将下一个参数pdfFilePath直接发送到打印机。 6秒后关闭adobe acrobat reader。

在visual studio 2010中进行调试时,这在我的本地计算机上运行得很好。

但是当我使用IIS 7.5在服务器上部署它时,它根本不会打开adobe acrobat reader。

我已检查过它是AcroRd32.exe的正确文件路径以及我试图打印的PDF文件。

我也试过这个程序的版本,用动词"Print"打开实际的PDF文件,但adobe acrobat reader仍然无法打开。

我认为这可能是一个权限问题。

修改:我使用福昕阅读器代替Adobe Acrobat Reader测试了此代码。

string processFilename = Microsoft.Win32.Registry.LocalMachine
.OpenSubKey("Software")
.OpenSubKey("Microsoft")
.OpenSubKey("Windows")
.OpenSubKey("CurrentVersion")
.OpenSubKey("App Paths")
.OpenSubKey("foxitreader.exe")
.GetValue(String.Empty).ToString();

其余代码不变。它打开Foxit Reader并在我的本地调试环境中打印。但是当代码在服务器上运行时没有任何反应。

0 个答案:

没有答案