繁体   English   中英

Docker中的Aspose.Words转换抛出错误

[英]Aspose.Words conversion throw error in Docker

我正在使用.NET Core 2.0应用程序,该应用程序在Docker支持的VS 2017中将文档转换为PDF,JPEG,PNG。 当我通过IIS Express启动应用程序时,一切正常,但是如果我以发布模式作为Docker容器启动应用程序,则应用程序会引发错误。

  1. 当我转换为PDF时:

    The type initializer for 'SkiaSharp.SKManagedStream' threw an exception.

  2. 当我转换为JPEG时:

    The type initializer for 'SkiaSharp.SKImageInfo' threw an exception.

我该如何解决这个问题? 还是SkiaSharp或Aspose库的问题?

问题的原因是SkiaSharp,它在NuGet包中不包含本地libSkiaSharp.so。 https://github.com/mono/SkiaSharp/issues/288

要变通解决此问题,我做了以下工作:

  1. 从此处https://github.com/mono/SkiaSharp/releases/tag/v1.59.3下载libSkiaSharp.so

  2. 使用以下nuspec创建了NuGet包

    <?xml版本=“ 1.0”编码=“ utf-8”?> <package xmlns =“ http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd”> <元数据> <id> Aspose .Skia.Linux.Natives </ id> <版本> 1.59.3 </ version> <title> Aspose.Skia.Linux.Natives </ title> <authors> Aspose </ authors> <owners> Aspose </ owners> <requireLicenseAcceptance> false </ requireLicenseAcceptance> <description>包含适用于Linux的Skia本机</ description> <dependencies> <group targetFramework =“。NETStandard2.0”> <dependency id =“ SkiaSharp” version =“ 1.59.3” /> </ group> </ dependencies> </ metadata> <files> <file src =“ C:\\ Temp \\ libSkiaSharp.so” target =“ runtimes \\ linux-x64 \\ native \\ libSkiaSharp.so” /> </ files> </ package>

  3. 将生成的NuGet包放入私有存储库,并在我的.NET Core Web应用程序中添加对它的引用。

  4. 添加了对Aspose.Words NuGet包的引用。

  5. 修改后的Dockerfile:

从Microsoft / aspnetcore:2.0

ARG来源

WORKDIR / app

展览80

运行apt-get更新&& apt-get安装-y libfontconfig1

复制$ {source:-obj / Docker / publish}。

ENTRYPOINT [“ dotnet”,“ WebApplication1.dll”]

如您所见,我添加了“ RUN apt-get update && apt-get install -y libfontconfig1”,因为libSkiaSharp.so似乎依赖于它。

我与Aspose一起担任开发人员推广人员。

看来问题出在服务器计算机上对.nuget > packages的访问权限方面。 我在服务器计算机上遇到类似的问题,该问题未授予应用程序池许可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM