我尝试将ABCpdf PDF生成器配置为在Azure应用服务中运行,我可以使用它生成一个简单的Hello World pdf,但是一旦我尝试使用他们的Gecko引擎将html转换为pdf我永远不会得到回应。
Azure的响应是500请求超时。
这里是Hello World Code:
public FileResult HelloWorld()
{
activateLicense();
Doc doc = new Doc();
doc.AddText("Hello World");
byte[] data = doc.GetData();
return File(data, "application/pdf", "hw.pdf");
}
这是html to PDF Code:
public FileResult GooglePDF()
{
activateLicense();
byte[] pdfbytes;
using (Doc theDoc = new Doc())
{
theDoc.HtmlOptions.Engine = EngineType.Gecko;
theDoc.AddImageUrl("http://google.com");
pdfbytes = theDoc.GetData();
}
return File(pdfbytes, "application/pdf", "GoogleHomepage.pdf");
}
示例:
http://abcpdfazure.azurewebsites.net/
源代码:
https://github.com/andyrblank/ABCpdfAzure
关于这个问题与此问题的重复: ABCpdf .NET with Azure App Service
在我的问题中,根本区别在于我使用的是Gecko引擎而不是MSHtml引擎。 Gecko引擎不需要修改Windows注册表,也不需要在主机上安装Internet Explorer。
引擎文档:http://www.websupergoo.com/helppdfnet/source/5-abcpdf/xhtmloptions/2-properties/1-engine.htm
我确实有关于ABCpdf如何与制造商合作的其他信息:
ABCGecko在进程池中运行,因此我们需要能够生成worker 过程
我相信它指的是在XULRunner文件夹中使用Gecko / Firefox渲染引擎的ABCGeckoWP.exe文件。我不确定这是否可以在Azure中使用,或者是否有人有解决方法。
答案 0 :(得分:0)
我建议你看一下这篇文章:http://www.websupergoo.com/support-azure-abcpdf.htm#waws。这是一个片段:
Windows Azure平台提供了多种托管网站的方式。对于ABCpdf,我们建议您使用Azure虚拟机,但也可以将ABCpdf与Azure Web角色或辅助角色一起使用。 如果您需要使用Windows Azure网站(WAWS),我们建议将其与安装到Azure工作者角色的ABCpdf结合使用。
据我所知,现在不支持Azure Web App。建议选择Azure辅助角色。