c# - Rotativa 在 Azure 中的服务结构节点上崩溃
问题描述
我有一个项目需要收集多个数据并将其放入一个 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++ Redistributable Packages
- 将 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 构建的,任何帮助将不胜感激。谢谢!
解决方案
我认为是缺少依赖问题。
根据您提供的场景和消息,The application was unable to start correctly(0xc000007b)
还有其他相关问题:
应用程序无法正确启动(0xc000007b)和错误:应用程序无法正确启动
另一个问题可能是缺乏运行或访问特定依赖项的权限。
我建议你试试:
- 首先通过命令行以管理员身份运行。
- 检查防火墙或网络\网站权限
- 使用dependency walker并检查它加载的依赖项\失败并验证它们是否安装在服务器上。
推荐阅读
- c++ - 文件操作 std::remove 和 std::rename 在带有空格的路径中报告“没有这样的文件或目录”,即使在转义时也是如此
- javascript - 在最多 200 个字符的数组中拆分字符串
- flutter - 在表单的 onPressed: () 上传递参数
- javascript - 如何在页面加载时显示所有元素(当前被过滤掉) - React
- rust - 将克隆添加到 rust 液体模板
- python - 在 SQL Python 中为每一行插入字母数字代码
- python - 查找下一个条件日期
- python - to_sql 中的列排序
- javascript - Jasmine 基于注释掉函数的奇怪引用行为
- r - 如何在不删除任何行/观察的情况下合并具有不同列名的数据框?