我正在使用https://github.com/codaxy/wkhtmltopdf包装器从我网站上的网页创建一个pdf(我传入一个绝对网址,例如http://mywebsite.azurewebsites.net/PageToRender.aspx它在dev和另一个共享主机帐户上工作正常但是当我部署到Azure网站时,它失败了,我得到的只是一个ThreadAbortException。 是否有可能在天蓝色上使用wkhtmltopdf,如果是这样,我做错了什么?
更新: 这个仅使用Process.Start的简单示例也不起作用。它只在Azure上运行时挂起,但在其他服务器上运行正常。
string exePath = System.Web.HttpContext.Current.Server.MapPath("\\App_Data\\PdfGenerator\\wkhtmltopdf.exe");
string htmlPath = System.Web.HttpContext.Current.Server.MapPath("\\App_Data\\PdfGenerator\\Test.html");
string pdfPath = System.Web.HttpContext.Current.Server.MapPath("\\App_Data\\PdfGenerator\\Test.pdf");
StringBuilder error = new StringBuilder();
using (var process = new Process())
{
using (Stream fs = new FileStream(pdfPath, FileMode.Create))
{
process.StartInfo.FileName = exePath;
process.StartInfo.Arguments = string.Format("{0} -", htmlPath);
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.UseShellExecute = false;
process.Start();
while (!process.HasExited)
{
process.StandardOutput.BaseStream.CopyTo(fs);
}
process.WaitForExit();
}
}
答案 0 :(得分:0)
查看有关类似问题的SO问题。这家伙似乎已经开始工作了。 RotativaPDF建立在wkhtmltopdf之上,因此连接。我正在我们的Azure网站上尝试自己 - 我将在不久的将来发布我的结果。