Asp.net mvc Azure网站和wkhtmltopdf

Asp.net mvc Azure网站和wkhtmltopdf,asp.net-mvc,azure,wkhtmltopdf,azure-web-app-service,rotativa,Asp.net Mvc,Azure,Wkhtmltopdf,Azure Web App Service,Rotativa,因此,在开始我的azure网站之旅后,我遇到了一次又一次的失望,甚至“几乎”后悔走上了azure之路。最新消息:我的应用程序在所有PDF版本中都使用wkhtmltopdf(Rotativa)。正如我现在在阶段性测试中发现的那样……这不起作用。根据网络上的大多数信息,azure网站无法运行.exe。然而,我看到的大多数信息都已经有2年的历史了,我知道Azure的开发速度很快 现在有没有办法在azure网站上运行wkhtmltopdf,或者至少有一个解决方法?我真的找不到像wkhtmltopdf这样

因此,在开始我的azure网站之旅后,我遇到了一次又一次的失望,甚至“几乎”后悔走上了azure之路。最新消息:我的应用程序在所有PDF版本中都使用wkhtmltopdf(Rotativa)。正如我现在在阶段性测试中发现的那样……这不起作用。根据网络上的大多数信息,azure网站无法运行.exe。然而,我看到的大多数信息都已经有2年的历史了,我知道Azure的开发速度很快


现在有没有办法在azure网站上运行wkhtmltopdf,或者至少有一个解决方法?我真的找不到像wkhtmltopdf这样的免费替代方案,但它似乎正在发挥作用。(Itextsharp似乎不喜欢我的html,所以这是没有选择的)。

在Azure网站上以简单的方式运行wkhtmltopdf似乎是不可能的,但仍然如此。 像Pechkin这样的静态.NET包装器在网站上也不起作用,只有很少的替代品是1。免费和2。不要在发动机罩下使用wkhtmltopdf或类似产品。在html/css3/javascript阅读方面,像iTestSharp这样的大多数替代方案都不是很先进(就像我在页面加载时使用.js更改设计一样)

我最终创建了一个Azure云服务,,它运行wkhtmltopdf.exe,没有任何问题。我将html发送到服务,并得到一个字节[]。到目前为止,这似乎运作良好。
希望这能帮助其他有类似问题的人。

运行
wkhtmltopdf
Azure Web应用程序中-只需确保您正在使用基本标准高级应用程序服务计划消费服务计划和免费应用程序服务计划有一个更有限的沙箱,在我的测试中不受支持。在Azure Web应用程序中

托管-应用服务计划


有许多包装纸可供选择<代码> CODAXYX//COD>是.NET中的exe包装器,而 TuesPechkin > /COD>是使用C++的运行时使用.p/援引过“代码> WKHTMLtox.dll <代码> > ./p>可以将.exe作为WebBLE托管,并从您的网站调用WebBole。下面的帖子可能会有帮助:@ Wrand,这将比放弃工作更有效。azure@Will,是的,可以在azure网站上运行exe。但是,有些API是受限制的,无法工作(例如,任何需要管理员访问的API),也许您应该重新表述您的问题,提供错误消息或信息,从而得出windows GDI lib被禁止的结论。如前所述,目前还不清楚什么不起作用,因此提供替代方案的可能性不大。仅供参考-问题不在于运行exe而不是使用.NET包装器。此外,wkhtmltopdf的替代方案也很有可能不起作用。wkhtmltopdf.exe不工作的根本原因是大多数PDF转换器使用本机Windows GDI+API调用,这些调用在Azure网站沙箱中被阻止。任何使用这些API调用的工具(负责呈现字体等)都将被阻止。创建一个外部服务并将其用于pdf生成可能是你能做的最好的评论,我后来也发现,在尝试使其工作12小时后,我的头脑被炸了:)嗨,NeedACar,我是Azure的新手,最近我遇到了同样的问题。您是否可以在这个“Azure云服务”上共享一些参考/代码,该服务可以围绕wkhtmltopdf.exe进行包装?提前谢谢!2P@TwoPea,我尝试了很多不同的方法和其他方法(静态库),但只要它使用wkhtmltopdf,它就不起作用(据我所知)。我只能想到两种解决方案,将我的网站移动到虚拟机(而不是Azure网站),或者像我一样,创建一个Azure云服务,基本上包含wkhtmltopdf。创建一个云(web)服务并不像我想的那么难。@NeedACar,愿意分享你的“更便宜的解决方案”吗?我也不想为了在Azure上运行愚蠢的
wkhtmltopdf
而为一个web角色付费…:-)您是救世主。注意:任何wkhtmltopdf包装器都不支持自定义字体。我的node.js应用程序不支持自定义字体,我应该在代码中的某个地方定义-command,路径是什么??