2010-12-09 26 views
2

我有一行代码,我可以作为服务的一部分在本地运行,完美地工作。从IIS中的应用程序打印到服务器上的联网打印机

sReportPath = objCrystalUtils.ExportReportToPDF("Report Name", iReportInfoID) 

该代码被作为服务运行的一部分,并且当通过将其数据I的单元测试它,它最终建立的报告,并打印出来。

当我从ajax调用中运行.ashx中完全相同的代码片段时。生成报告(我可以看到在磁盘上创建的PDF文件),但打印没有发生。

oRpt.PrintToPrinter(objReport.DefaultAutoPrint, True, 0, 0) 

在这两种情况下,使用相同的代码来打印报告。 (objReport.DefaultAutoPrint = 0在这两种情况下)

我唯一的想法是调用此方法的代码的位置是在与票据本身的位置不同的位置。

,我试图打印到我的机器上的网络打印机里安装的打印机,我运行Windows 7 IIS 6.1

有什么想法?

编辑:

这里有一个想法......如果我跑一个地方作为一个单元测试,并通过即时消息是通过IIS中运行的Web应用程序运行的其他,是有用户ID的区别和用户访问默认打印机?

编辑:

所以我将我的本地ASP,IUSR和系统用户到打印机的安全性,并允许他们打印...没有骰子。所以我检查了EVERYONE用户,它被设置为访问并且没有用户被拒绝...所以我认为这有点杀死了这种推理。

编辑:

我改变了这个帖子的名字,因为我不再想这个问题是AJAX相关的,因为如果我尝试做同样的过程在代码bebehind从后回,而不是从运行它阿贾克斯呼吁我仍然得到同样的问题。

回答

1

帕特里克,对我来说,这是一个已知的水晶报告问题,通过IIS打印来自正在运行的应用程序的某个报告。

我之前也遇到过同样的问题,当我们搜索这个问题时,我们得到了以下结果:

Report to be generated, exported, and then to be downloaded to client machine, 
so user can print it locally (say, report will be exported as PDf file, 
user can use print option of PDF reader). 
+0

如果此解决方案符合您的要求,我可以发布需要导出报告的代码。 – Ahmed 2010-12-15 14:57:06

相关问题