|
1
1
嗯,似乎没有人有这个问题。 真正奇怪的是我的夜间作业(普通的.NET.exe)完全能够打印-只有我的Web服务有这个问题。 所以我通过做很久以前应该做的事情来解决这个问题:我用 Topshelf ,它响应一些msmq消息并进行打印,然后我的Web服务可以通过消息队列订购打印输出。 各方面都好得多! |
|
|
2
1
我从来没有遇到过使用Microsoft Excel、Word和PowerPoint通过Web服务中的Interop将Office文档打印为PDF格式的问题(性能差、挂起进程、崩溃进程等)。我也遇到了一些问题,我怀疑是因为不可见的对话框(可能文件已损坏,建议设置只读,文件受密码保护,或其他原因)。 我知道有些工具不使用Office,但它们非常昂贵。我的解决方案是切换到自动化的OpenOffice。OpenOffice似乎要稳定得多,我已经把挂起的进程等抛在后面了。 所以,虽然我想我说的是“不要使Microsoft Office自动化”,但我并不是建议您完全放弃自动化;只是我已经放弃了 许多的 使OpenOffice自动化比Microsoft Office更成功。 |
|
|
3
0
SpreadsheetGear for .NET 可以读取XLS或XLSX工作簿,并且可以在不显示任何对话框的情况下打印到默认打印机(请参见workbookview.print()方法)。 您可以下载评估 here . 免责声明:我拥有SpreadsheetGear LLC |
|
|
4
-2
像很多人一样,我 有 看到了这种行为。它是由在服务器中使用Office API引起的,尤其是多线程ASP.NET应用程序。 不过,你说过你不想知道不要开枪打自己的脚,所以没什么好说的。你似乎被早期愚蠢的后果所困住了。 好吧,如果你听说了就阻止我 这 一: 一个人问了一个关于stackoverflow的问题。他说,“所以,当我从服务内部自动化一个办公应用程序时,就会发生糟糕的事情”。所以,JohnSaunders说,“所以,不要从服务内部自动化Office应用程序。从桌面应用程序内部实现自动化,就像微软打算做的那样。” 当需要Excel的请求出现时,您应该创建一个运行Windows窗体应用程序的进程。应用程序可能必须在没有窗口的情况下启动,或者您可能需要在 Remote Desktop 连接。在任何情况下,要执行的任务都可以作为命令行参数传递,或者程序可以宿主一个WCF服务来向其发送命令。 这个程序可以调用Excel,就像Excel希望调用的那样。它甚至可以处理多个Excel命令(一次一个)。但是,如果挂起,则可以终止该进程,并启动另一个进程。 我从来没有尝试过,但听起来这比让办公自动化去做一些它没有设计好的事情要好。 |