ASP.NET IIS服务器端打印失败

AlB*_* Sh 4 printing asp.net iis printdocument server-side

我正在构建一个需要使用PrintDocument方法进行打印的ASP.NET应用程序:

PrintDocument.Print()
Run Code Online (Sandbox Code Playgroud)

使用IIS Express在开发环境中正常打印.将其发布到Intranet IIS服务器时,打印失败,我认为这是由aspnet工作进程的权限问题引起的.

我试图做以下事情但没有成功:

  • 我为管理本地用户创建了一个集成管道模式的应用程序池,其中load user profile选项设置为true
  • 我将应用程序移动到新创建的应用程序池
  • <identity impersonate="true" username="username" password="*****"/>在web.config文件中添加了
  • 出现一个错误,指出:已检测到ASP.NET设置不适用于集成管理管道模式,因此我添加<validation validateIntegratedModeConfiguration="false"/><system.webServer>部分.

有什么帮助吗?

Dar*_*rov 6

我想你可能会误解一些基本概念.使用时,PrintDocument.Print()您正在服务器上打印.在IIS中部署应用程序时,此打印将在托管应用程序的服务器计算机上进行.您认为您的代码在IIS Express 中工作的原因是因为您在与测试它的客户端浏览器相同的计算机上托管您的应用程序.您还在您的帐户下运行了已配置打印机的应用程序.

您无法从Web应用程序直接打印到客户端计算机.这将是一个很大的安全问题.您可以做的最好的事情是使用打印提供一些HTML文档media CSS type.然后,如果用户决定,他可以在他的浏览器中打印它.

另一方面,如果要在连接到Web服务器的某台打印机上进行打印,则需要在IIS中配置应用程序池,以便在其配置文件中配置了打印机的标识下运行.