我试图通过传入多个URL,使用wkhtmltopdf在我的ASP.Net应用程序中生成一个多页的pdf文档。
这是被调用的代码 -
Public Shared Function WKHtmlToPdf(ByVal url As String, ByVal OutputDir As String, ByVal OutputFileName As String) As Boolean
Dim blnReturn As Boolean = False
Dim wkhtml As String = HttpContext.Current.Server.MapPath("~/resources/wkhtmltopdf/wkhtmltopdf.exe")
Dim p As New Process()
p.StartInfo.CreateNoWindow = True
p.StartInfo.RedirectStandardOutput = True
p.StartInfo.RedirectStandardError = True
p.StartInfo.RedirectStandardInput = True
p.StartInfo.UseShellExecute = False
p.StartInfo.FileName = wkhtml
p.StartInfo.WorkingDirectory = OutputDir
p.StartInfo.Arguments = url & " " & OutputFileName
p.Start()
p.WaitForExit(60000)
Dim returnCode As Integer = p.ExitCode
p.Close()
If returnCode = 0 Then
blnReturn = True
End If
Return blnReturn
End Function
现在我遇到的问题是
的错误p.WaitForExit(60000)
,出现以下错误消息。
Process must exit before requested information can be determined.
但是,当我传入超过4或5个URL时,似乎只会发生此错误,它似乎是随机的,有时会更少,有时会更多。这导致该过程花费很长时间来生成PDF,从而在p.WaitForExit错误...
我想知道是否有某种请求限制被命中?在直接使用命令提示符时,我可以使用所需的URL生成PDF。