Rotativa在Azure的服务结构节点上崩溃

时间:2018-06-26 22:37:20

标签: c# azure azure-service-fabric rotativa

我有一个项目,需要收集多个数据并将其放入一个pdf文件中,为此我使用了Rotativa包装器。它在我的本地服务结构集群上运行良好,并且能够使用ViewAsPdf生成pdf,然后获取字节数组以将其附加到电子邮件中。当我在Azure(服务结构群集)中部署项目并且我收到此错误时,就会出现问题:

at Rotativa.AspNetCore.WkhtmlDriver.Convert(String wkhtmlPath, String switches, String html, String wkhtmlExe)\r\n at Rotativa.AspNetCore.WkhtmltopdfDriver.ConvertHtml(String wkhtmltopdfPath, String switches, String html)\r\n at Rotativa.AspNetCore.ViewAsPdf.<CallTheDriver>d__19.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---

我尝试过的事情:

  • 在服务结构节点(部署项目的地方)中以x64和x86版本安装了Visual Studio 2013和2015的Visual C ++可再发行组件包
    • 将Rotativa文件夹从wwwroot移至项目的根路径,并在RotativaConfiguration.Setup()方法中设置路径
    • 将msvcp120.dll和msvcr120.dll复制到Rotativa文件夹中
    • 在服务结构节点中安装了wkhtmltopdf.exe
    • 我安装了Rotativa.AspNetCore 1.0.6 nuget软件包
    • 我使用ViewAsPdf渲染剃刀视图,并调用BuildFile方法获取字节数组
    • 如果我在服务结构节点的命令行中运行了wkhtmltopdf.exe,则会得到:“应用程序无法正确启动(0xc000007b),单击“确定”以关闭应用程序”

服务结构节点是Windows计算机。该项目使用aspnet core 2.0构建 任何帮助将不胜感激。谢谢!

2 个答案:

答案 0 :(得分:1)

我认为这是一个缺少的依存关系问题。

根据方案和您提供的The application was unable to start correctly(0xc000007b)消息,还有其他相关问题: The application was unable to start correctly (0xc000007b)Error : the application was unable to start correctly

另一个问题可能是缺少运行或访问特定依赖项的权限。

我建议您尝试:

  • 首先通过命令行以管理员身份运行。
  • 检查防火墙或网络\网站权限
  • 使用依赖关系行程序并检查其加载的依赖项\失败,并验证它们是否已安装在服务器上。

答案 1 :(得分:0)

作为解决方法,您可以创建一个container来运行它。这将避免您进入节点安装内容的麻烦,从而限制了横向扩展和故障转移选项。

some peoplegot it working的人。