从Windows服务运行没有UI的可执行程序

时间:2014-05-06 10:51:04

标签: windows service console

我正在运行没有UI的控制台应用程序,并从pdf文件生成thumbmail图像。此应用程序的编译文件工作正常。但是,我必须从实现FileSystemWatcher类的Windows服务应用程序调用此编译文件,以检测何时将新的pdf文件上载到目录中。

我正在使用此链接中的建议 How to run console application from Windows Service?

ProcessStartInfo info = new ProcessStartInfo(appName);
info.UseShellExecute = false;
info.RedirectStandardError = true;
info.RedirectStandardInput = true;
info.RedirectStandardOutput = true;
info.CreateNoWindow = true;
info.ErrorDialog = false;
info.WindowStyle = ProcessWindowStyle.Hidden;

Process process = Process.Start(info);

if (!process.HasExited)
{
   LogEvent(process.ProcessName + "has started and called Thumbnail application");
}
 else
{ LogEvent(process.ProcessName + "has been terminated"); }

我可以看到这个过程涉及" pdfThumbnail.exe"但是当应用程序尝试执行时,我收到此错误。

" System.Exception:无法创建ActiveX组件。    at Microsoft.VisualBasic.Interaction.CreateObject(String ProgId,String ServerName)    在PDFThumbnailCsharp.Main(String [] args) "

正如我上面所说的,当我运行exe文件时,pdfThumbnail.exe执行正常。

更新

这是SysInternals'的错误。进程监视器

计算机默认权限设置不授予具有CLSID {FF76CB60-2E68-101B-B02E-04021C009402}和APPID的COM服务器应用程序的本地激活权限 来自地址LocalHost(使用LRPC)的用户NT AUTHORITY \ LOCAL SERVICE SID(S-1-5-19)不可用。可以使用组件服务管理工具修改此安全权限。

我已将此CLSID的所有权更改为具有完全控制权限的管理员,如此链接所述 http://social.technet.microsoft.com/Forums/en-US/windowsserver2008r2general/thread/e303c7e1-16de-42fd-a1a4-7512c1261957

但是我仍然遇到同样的错误。

任何帮助将不胜感激。

由于

1 个答案:

答案 0 :(得分:0)

此CLSID {FF76CB60-2E68-101B-B02E-04021C009402}适用于我的计算机注册表中的Acrobat.Excha.PDDoc。通过此链接https://forums.adobe.com/thread/1467460对Acrobat进行的进一步调查显示,Acrobat无法从服务中运行。

我现在做的更好的方法是创建一个Windows任务计划程序,用于在创建新的pdf时监听由windows服务引发的事件,然后触发创建缩略图的控制台应用程序。