首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >天青上的GhostScriptSharp

天青上的GhostScriptSharp
EN

Stack Overflow用户
提问于 2014-07-01 22:00:34
回答 2查看 1.6K关注 0票数 1

我认为有两种症状是同样的问题。

我已经使用Nuget安装了GhostScriptSharp,并且在Azure开发结构中的32位机加工上本地运行它。一切都运转得很好。

当我部署到Azure (64位)时,我将得到以下错误消息。

无法加载DLL 'gsdll32.dll':找不到指定的模块。(HRESULT例外: 0x8007007E)

如我所知,这里有两个问题

  • 该项目没有使用64位GhostScriptSharp.cs构建。
  • 不管构建如何,gsdll32.dll或gsdll64.dll没有被复制到正确的文件夹中。

对于Azure部署,有什么建议可以让它发挥作用吗?

EN

回答 2

Stack Overflow用户

发布于 2015-12-23 10:35:23

只是在一个测试站点的Azure网站部署上解决了这个问题。我们只使用GhostScriptSharp的拇指钉功能,还没有弄清楚如何用Ghostscript.NET做同样的工作,因为实际的例子是轻量级的。

错误信息有点误导性。该文件没有丢失,它只是没有对DLL文件所在的文件夹(例如BIN文件夹)的读/写访问权限。

如果您在VM上运行,您可以允许对您的BIN文件夹进行读/写访问(轻微的安全问题),但是在免费的Azure网站上,您没有这个控制。

我们的解决方案是将gsdll32.dll和gsdll64.dll文件放入App_Data文件夹(该文件夹已经具有读/写访问权限),并使用Win32内核SetDllDirectory函数将该文件夹添加到搜索DLL的位置。

例如,使用

代码语言:javascript
复制
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
static extern bool SetDllDirectory(string lpPathName);

然后,在调用GhostscriptSharp方法(例如从控制器方法中)之前,使用以下方法将App_Data文件夹添加到DLL搜索路径:

代码语言:javascript
复制
SetDllDirectory(Server.MapPath("~/App_Data/"));

在这之后,它又开始工作了。

票数 4
EN

Stack Overflow用户

发布于 2014-07-02 14:00:19

您可能缺少了一些存在于开发机器上的windows运行时DLL。这些将需要包括在您的部署到Azure。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24519908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档