首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在生产web服务器上执行过程

在生产web服务器上执行过程
EN

Stack Overflow用户
提问于 2014-06-26 10:55:24
回答 1查看 904关注 0票数 2

这是我的代码打印一个已经生成的PDF在网站上。该页面允许用户通过从列表中选择打印机来打印该PDF文件。

当我从本地机器运行它并且从选定的打印机打印出PDF时,我的代码运行良好,但是当我将它部署到生产web服务器(IIS 7)时,单击“打印”按钮不会发生任何事情,并且不会引发任何异常或错误。

我已经检查了该文件是否存在于服务器以及可执行的C:\\Program Files\\Adobe\\Reader 10.0\\Reader\\AcroRd32.exe中,因此我认为这个问题可能与权限有关。

在服务器中执行的检查:

  1. All UsersSystemIIS_IUSRS用户对~/Content/Pdfs/文件夹具有R/W/E权限
  2. All UsersSystemIIS_IUSRS用户对C:\Program Files\Adobe\Reader 10.0\Reader文件夹具有R/W/E权限。
  3. IIS上的应用程序池的标识从ApplicationPoolIdentity更改为LocalSystem。 私有空白打印(字符串文件,字符串printerName) { string FilePath =Server.MapPath(“~/ FilePath /Pdfs/”+文件);尝试{ Process p=新进程();p.StartInfo.FileName = @"C:/Program /Adobe/Reader 10.0/Reader/AcroRd32.exe";p.StartInfo.Arguments = "/h /t \“+FilePath+ "\”+ printerName +“\”;p.StartInfo.RedirectStandardError = true;p.StartInfo.UseShellExecute = false;p.Start();string stdout = p.StandardError.ReadToEnd();p.WaitForExit();const = @"C:\Output.txt";System.IO.StreamWriter sw =新System.IO.StreamWriter(Sw);sw.WriteLine(stdout);sw.Close();} catch (异常e) { const = @"C:\Error.txt";System.IO.StreamWriter sw =新System.IO.StreamWriter( fic );sw.WriteLine(e.Message);sw.Close();}}

有什么问题吗?

更新:

我按照建议做了更多的日志记录,所以我使用Try...Catch记录输出和异常(更新的代码)。在服务器上执行后,Output.txt文件被创建为空,而Error.txt文件未被创建。事件查看器上没有记录应用程序错误/警告。

我在服务器上打开一个命令提示符窗口并执行AcroRd32.exe /h /t "C:\inetpub\wwwroot\otweb\Content\Pdfs\orden20140627112547.pdf" "Bullzip Printer",文件被成功打印出来。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-30 10:10:03

我终于找到了解决办法。唯一帮助我的是将应用程序池标识设置为IIS上的管理员帐户

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24428612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档