1

下面的代码用于从 ASP .NET MVC3 应用程序打印到三星 ML-331x 系列打印机,该打印机连接到 LAN 中的 IP 地址并在服务器中共享为三星 ML-331x 系列

什么都没有打印。执行停止doc.Print()在行。每个控制器调用都会添加新的未完成工作:

后台处理程序输出

这些工作永远不会完成,只会iisreset清除它们。

服务器是 Windows 2003 + IIS 它在 MVC2 .NET 3.5 应用程序中工作。ForteSSL VPN 安装在服务器中,应用程序升级到 MVC3 和 .NET 4。(之后没有立即检查打印,所以我不确定这是否与这些更改有关)。

具有所有权限的用户 NETWORK SERVICE 已添加到打印机用户,但问题仍然存在。通过在带有 Web Developer 服务器的 Visual Studio 中按 F5 并使用控制器调用以打印到 PDF Creator 来在开发计算机中运行应用程序可以正常工作。

如何从服务器中的控制器打印?

    public ActionResult PrintTest()
    {
        var doc = new PrintDocument();
        doc.PrinterSettings.PrinterName = "Samsung ML-331x Series";
        doc.PrintPage += new PrintPageEventHandler(TestProvideContent);
        doc.Print();
        return new ContentResult()
        {
            Content = "Printed"
        };
    }

    public void TestProvideContent(object sender, PrintPageEventArgs e)
    {
        e.Graphics.DrawString("Test",
          new Font("Arial", 12),
          Brushes.Black,
          e.MarginBounds.Left,
          e.MarginBounds.Top);
    }

更新

应用程序以完全信任级别运行。事件查看器中的应用程序日志没有关于此的任何条目。

在 ASP.NET MVC 中以编程方式使用“hello world”默认服务器端打印机我尝试将打印机名称与服务器名称一起使用,\\SERVER\Samsung ML-331x Series但问题仍然存在。

4

0 回答 0