C# 进程。启动不';我不能在IIS中工作
我正在尝试通过Process.Start手动打印PDF,但它在IIS中不起作用。我在一个windows窗体应用程序中复制了相同的代码,并且成功了。我已尝试将权限授予“网络服务”用户(我的应用程序池具有网络服务权限)。我也遵循了以下步骤:C# 进程。启动不';我不能在IIS中工作,c#,iis,C#,Iis,我正在尝试通过Process.Start手动打印PDF,但它在IIS中不起作用。我在一个windows窗体应用程序中复制了相同的代码,并且成功了。我已尝试将权限授予“网络服务”用户(我的应用程序池具有网络服务权限)。我也遵循了以下步骤: 权限,或者架构(32位对64位)。看到Hi Stuart的可能副本,我已经检查了该链接,并已将所有权限授予网络服务用户(我的应用程序池的标识),但它仍然不起作用。虽然我可以在任务管理器中看到adobe exe,但它不会启动打印命令或打开打印对话框。是否尝试查看
权限,或者架构(32位对64位)。看到Hi Stuart的可能副本,我已经检查了该链接,并已将所有权限授予网络服务用户(我的应用程序池的标识),但它仍然不起作用。虽然我可以在任务管理器中看到adobe exe,但它不会启动打印命令或打开打印对话框。是否尝试查看当允许它显示窗口时会发生什么情况?是的,只是再次尝试,但仍然不好。权限,或者可能是架构(32位对64位)。看到Hi Stuart的可能副本,我已经检查了该链接,并已将所有权限授予网络服务用户(我的应用程序池的标识),但它仍然不起作用。虽然我可以在任务管理器中看到adobe exe,但它不会启动打印命令或打开打印对话框。是否尝试查看当允许它显示窗口时会发生什么情况?是的,只是再次尝试,但仍然没有效果。
string file = @"C:\test.pdf";
string printer = "TestPrinter";
string processFilename = Microsoft.Win32.Registry.LocalMachine
.OpenSubKey("Software")
.OpenSubKey("Microsoft")
.OpenSubKey("Windows")
.OpenSubKey("CurrentVersion")
.OpenSubKey("App Paths")
.OpenSubKey("AcroRd32.exe")
.GetValue(String.Empty).ToString();
var info = new ProcessStartInfo();
info.FileName = processFilename;
info.Arguments = string.Format("/h /t \"{0}\" \"{1}\"", file, printer);
info.CreateNoWindow = true;
info.WindowStyle = ProcessWindowStyle.Hidden;
info.UseShellExecute = false;
Process p = Process.Start(info);
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
int counter = 0;
while (!p.HasExited)
{
System.Threading.Thread.Sleep(1000);
counter += 1;
if (counter == 5) break;
}
if (!p.HasExited)
{
p.CloseMainWindow();
p.Kill();
}