我最近使用 Rotativa nuget 包将 MVC 视图导出为 PDF。
这适用于本地以及专用 Windows 服务器,但不适用于共享主机。
我得到了一般的 Rotativa 错误。我无权更改可执行文件的权限,托管服务提供商也不会更改权限。
我可以尝试使用哪些其他解决方案来使其在共享主机上运行?
我最近使用 Rotativa nuget 包将 MVC 视图导出为 PDF。
这适用于本地以及专用 Windows 服务器,但不适用于共享主机。
我得到了一般的 Rotativa 错误。我无权更改可执行文件的权限,托管服务提供商也不会更改权限。
我可以尝试使用哪些其他解决方案来使其在共享主机上运行?
我遇到了一个对我有用的解决方案。
当前在 NuGet 中的版本是旧版本。
您需要访问http://wkhtmltopdf.org/downloads.html并下载最新的稳定版本。对我来说,它是 64 位版本,因为共享托管服务器是 Windows Server 2008 R2 64 位。
这将下载一个EXE。使用 7Zip 或 WinRar 等解压 EXE。
打开解压后的文件夹,找到名为 bin 的文件夹。复制以下内容:
将这些文件 FTP 到您的实时站点 wwwroot -> Rotativa 文件夹。您将需要覆盖该文件夹中的现有文件。
现在,您的 PDF 导出操作将适用于共享主机。
希望这可以为您节省很多时间。
它现在可以工作,但由于 Rotativa 使用的是 wkhtmltopdf exe,它是您代码之外的可执行文件,如果您尝试切换到另一个环境,您可能会再次遇到问题。
如果可移植性是一个问题,我会使用 100% 托管的 c# 代码库,例如用于 PDF 的 ITextSharp 或 HtmlRenderer 以及用于将视图转换为 html 代码的 RazorViewEngine。