我正在运行没有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
但是我仍然遇到同样的错误。
任何帮助将不胜感激。
由于
答案 0 :(得分:0)
此CLSID {FF76CB60-2E68-101B-B02E-04021C009402}适用于我的计算机注册表中的Acrobat.Excha.PDDoc。通过此链接https://forums.adobe.com/thread/1467460对Acrobat进行的进一步调查显示,Acrobat无法从服务中运行。
我现在做的更好的方法是创建一个Windows任务计划程序,用于在创建新的pdf时监听由windows服务引发的事件,然后触发创建缩略图的控制台应用程序。