我有下面的代码在ASP.NET的C#和它的工作正常的本地系统+生产机器时,我在调试模式测试。但它不工作时,我上传到IIS。
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = Server.MapPath(filePath);
startInfo.Verb = "print";
startInfo.Arguments = "Printer Name";
Process proc = new Process();
proc.StartInfo = startInfo;
proc.Start();
proc.WaitForExit(5000);
if (proc.HasExited == false)
{
proc.Kill();
}
我试过的东西。
1.控制面板〉管理服务〉服务〉IIS管理服务〉登录选项卡〉检查与桌面交互。重置IIS管理和IIS。
1.打印机属性〉安全〉大ASPNET,网络服务,每个人都可以完全访问。
1.试图将另一台打印机设置为默认打印机。请重新安装/添加打印机。
我尝试了以上所有的都没有成功。最后我在我的machine. config中尝试了下面的。
- WINNT〉Microsoft.NET〉框架〉v2.52something〉配置〉计算机配置
我换了这个
进程模型自动配置=“true”
用这个
进程模型用户名=“SYSTEM”密码=“自动生成”
我收到了这个消息
“在您可以执行与打印相关的工作之前,您必须先安装打印机”
我正在使用acrobat 7,我可以从打印机本身和acrobat软件打印测试页。
2条答案
按热度按时间kgsdhlau1#
你可以使用动词如果acrobat是安装在你的机器上.和传递打印机名称作为参数
qlzsbp2j2#
问题可能是IIS在其他用户下运行,该用户的权限比典型用户少。请参阅System.Diagnostics.Process.Start not work from an IIS
我通过将ProcessModel标识更改为具有权限的用户,在我的服务器上修复了该问题。这可能是一种变通方法和不好的做法,但它起作用了。{应用程序池} -〉高级设置-〉标识-〉自定义帐户(同时将加载用户配置文件切换为true)