2

在我们的生产服务器上,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 时会引发异常。

有谁知道如何找出这里出了什么问题?

这是堆栈跟踪:

[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();
4

2 回答 2

0

这可能有多种原因,但是当我遇到这种情况时,我注意到安装Windows Management Framework 3.0后错误消失了

您可以检查您的设置是否属于这种情况。

于 2013-03-18T15:55:03.247 回答
0

我最近有一个事件,每次调用 Rotativa WkhtmltopdfDriver ConvertHtml 时都会出现此错误。

然后我测试了 wkhtmltopdf 正在使用

C:\inetpub\wwwroot\SomeApplication\Rotativa>wkhtmltopdf.exe c:\pdf\test.txt c:\pdf\test.pdf

这给我留下了几个选择,因为我的搜索结果不是很好。

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

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

我建议任何遇到此类问题的人都尝试证明 wkhtmltopdf 本身是否正常工作,因为这应该有助于进一步排除故障。并在您开始更改任何内容之前尝试重新启动。

在我的情况下,我假设 Windows 服务没有运行,或者类似地,其他一些必需的部分已经发现它进入错误状态。

于 2017-09-26T20:28:54.657 回答