代码之家  ›  专栏  ›  技术社区  ›  James

ASP.NETMVC-无法打印ASP.NET服务器上的图表控件

  •  0
  • James  · 技术社区  · 15 年前

    chart.Printing.Print(false);
    bool finished = false;
    while (!finished)
    {
        finished = File.Exists(settings.GetValue("statusfile")); // file which indicates document was printed
        System.Threading.Thread.Sleep(1000);
    }
    

    在这一点上,页面只是冻结(或者继续无休止地加载-无限循环!)这是可以理解的,因为我100%地依赖于正在打印的文档。我确实想增加一个超时,但是,现在我只是想弄清楚为什么文档从来没有被设置到打印机上!

    我已经给了这个帐户(应用程序池是在这个帐户下运行的)对所有相关文件夹,甚至是pdf打印机本身的权限…仍然什么也没有。

    我错过什么了吗?在服务器端通过打印是否有任何问题ASP.NET?我在过去通过WindowsServices执行此操作时遇到了一些问题,不确定是否与ASP.NET网站。

    更新

    正如建议的那样,我更新了AppPool以给自己(管理员)权限,这是同一个问题。所以从外观上看,作业永远不会被发送到打印机。我似乎不明白为什么。。。

    可能应该在我最初的帖子中提到这一点……但是我是通过一个引用的DLL调用打印机的,这段代码并不是直接从我的应用程序中调用的(如果有关系的话)。在我的开发机器上运行得很好,它运行的是windows7iis7.0,服务器运行的是windows2003server和IIS6.0。

    更新2

    当我离开循环的时候 chart.Printing.Print(false) 正在发送到打印机。所以问题一定是设置文件没有被写入,这就是为什么循环永远不会发生!

    1 回复  |  直到 15 年前
        1
  •  0
  •   Jacob    15 年前

    要隔离这是否确实是权限问题,可以尝试使用visualstudioweb开发服务器运行应用程序,该服务器将在您的凭据下运行。或者,如果这不是一个选项,请临时更改IIS应用程序池,以便它使用您的凭据。如果事情仍然不起作用,你可能有另一个问题。我不知道你在使用哪一个图表库(是微软的新库吗?)但也许吧 Print 要显示打印机对话框。