下面的代码用于从 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
但问题仍然存在。