在 ASP.NET Azure 网站上使用 Ghostscript.Net
Posted
技术标签:
【中文标题】在 ASP.NET Azure 网站上使用 Ghostscript.Net【英文标题】:Using Ghostscript.Net on an ASP.NET Azure Website 【发布时间】:2015-07-14 16:50:15 【问题描述】:我正在使用Ghostscript.NET 将 PDF 页面转换为 jpg。当我在本地运行它时一切正常,但是当我将它发布到 Azure 网站时,我得到了错误:
“这个托管库在 32 位进程下运行,需要在这台机器上安装 32 位 Ghostscript 本机库!要下载正确的 Ghostscript 本机库,请访问:http://www.ghostscript.com/download/gsdnld.html”
显然,我不能只在运行 Azure 网站的服务器上安装 Ghostscript,我无权执行此操作。有什么方法可以在发布配置文件中包含一个 Ghostscript 库,并从中读取 Ghostscript.NET?
或者,是否有 任何 软件包可以让我在 ASP.NET 服务器上将 PDF 页面转换为 jpg 缩略图而不使用 Ghostscript?我也尝试过 GhostScriptSharp,但也没有运气。
【问题讨论】:
虽然不是免费的,但有Foxit PDF Rasterizer。 您可以尝试将本机 ghostscript 库安装到本地计算机并获取 gsdll32.dll,您可以将其与其他 dll 一起部署到您的服务器。看看这个例子如何告诉 Ghostscript.NET 在哪里搜索原生的 ghostscript 库 dll:github.com/jhabjan/Ghostscript.NET/blob/master/… 这绝对有效,HABJAN!谢谢!如果您想将此作为答案提交,我将接受它作为问题的解决方案。 @RamblerToning:完成 【参考方案1】:您可以尝试将本机 ghostscript 库安装到您的本地计算机并获取 gsdll32.dll(或 gsdll64.dll,如果您在 x64 位环境中运行)可以与其他 dll 一起部署到您的服务器。
看看这个例子如何告诉 Ghostscript.NET 在哪里搜索原生的 ghostscript 库 dll:https://github.com/jhabjan/Ghostscript.NET/blob/master/Ghostscript.NET.Samples/Samples/CustomGsdllLocationSample.cs
【讨论】:
【参考方案2】:你有几个选择。
将您的网站托管为 Azure Cloud Service Web 角色。这使您可以对正在创建的服务器做出反应,并且您可以运行安装程序(如果您可以自动化它们)来准备机器。
将此功能拆分为 Azure 云服务工作者角色(您可以在其中进行相同的机器准备)并让它响应 Azure Queue 项。这样您的网站就会保持原样。
但要小心,Cloud Services 如果他们只是坐在那里无所事事,因为它仍在 VM 上运行,可能会变得很昂贵。您可以根据队列是否有项目来拥有您的Cloud Service scale。
【讨论】:
以上是关于在 ASP.NET Azure 网站上使用 Ghostscript.Net的主要内容,如果未能解决你的问题,请参考以下文章
使用 Access 数据库将 asp.net 网站上传到 azure
在 Azure 上部署 Asp.NET Core Web App
从 Asp.Net 网站外部访问 Azure Blob 存储