在调用wkhtmltopdf.exe - win server 2008时,许可证执行系统被篡改

本文关键字:许可证 执行系统 2008时 server wkhtmltopdf 调用 exe win | 更新日期: 2023-09-27 18:04:43

在我们的生产服务器上,win 2008 64位,在NETWORK SERVICE帐户下运行.NET 3.5站点,我突然在错误日志中得到这样的消息"服务器无法打开此程序,因为许可证执行系统已被篡改或损坏"在我的帐户下启动wkhtmltopdf.exe(或在SYSTEM帐户下,使用这里描述的技术- http://geek.hubkey.com/2008/02/impersonating-built-in-service-account.html) -工作成功。所有的软件都是授权的,我们已经有一段时间(几周)没有在服务器上安装任何新的东西了。

调用wkhtmltopdf.exe从页面生成PDF时抛出异常。

有没有人知道如何找出这里的问题?

下面是stacktrace:
[Win32Exception (0x80004005): Windows cannot open this program because the license enforcement system has been tampered with or become corrupted]
System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo) +614
System.Diagnostics.Process.Start() +56
KPI.DownloadWoordenschatTest() in ..'KPI.aspx.cs:1579
KPI.btnLogin5_Click(Object sender, EventArgs e) in ..'KPI.aspx.cs:1451
KPI.Page_Load(Object sender, EventArgs e) in ..'KPI.aspx.cs:109
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
System.Web.UI.Control.OnLoad(EventArgs e) +99
System.Web.UI.Control.LoadRecursive() +50
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627

下面是报告问题的代码片段:

Process pdfConverterProcess = new Process();
            pdfConverterProcess.StartInfo.FileName = Server.MapPath("~/bin/wkhtmltopdf.exe");
            pdfConverterProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
            pdfConverterProcess.StartInfo.Arguments = String.Format(@" ""{0}"" ""{1}"" --header-html ""{2}&np=1"" --footer-html ""{3}&np=1""  --margin-top 2.5cm --header-spacing 7", requestUrl, filePath, pdfHeaderURL, pdfFooterURL);
            pdfConverterProcess.Start(); (this is line 1579)
            pdfConverterProcess.WaitForExit();
            pdfConverterProcess.Close();

在调用wkhtmltopdf.exe - win server 2008时,许可证执行系统被篡改

可能有多种原因,但是当我面对这个问题时,我注意到在我安装了Windows管理框架3.0后错误消失了

您可以检查您的设置是否存在这种情况

我最近有一个事件,我得到了这个错误,每次调用Rotativa WkhtmltopdfDriver converthhtml。

然后我测试了wkhtmltopdf与 一起工作。
C:'inetpub'wwwroot'SomeApplication'Rotativa>wkhtmltopdf.exe c:'pdf'test.txt c:'pdf'test.pdf

这让我没有多少选择,因为我的搜索结果不是很好。

值得庆幸的是,重新启动服务器后,我的问题解决了,不需要任何额外的步骤。

在我的案例中,当这种情况开始发生时,我们最近没有对应用程序进行任何更改,并且Rotativa已经工作了一年多,一旦我们启动并运行它,就没有任何先前的问题。

我建议任何有类似问题的人尝试证明wkhtmltopdf自己是否工作良好,因为这应该有助于进一步的故障排除。在你离开并开始更改任何东西之前尝试重新启动。

在我的情况下,我认为要么是windows服务没有运行,要么是其他一些必需的组件找到了进入错误状态的方式。