我正在尝试创建一个Docker映像来托管我的asp.net MVC应用程序,该应用程序依赖于Crystal Reports。
我的dockerfile如下所示
FROM microsoft/iis
COPY ./bin/Release/Publish/ c:\\inetpub\\wwwroot
RUN ["powershell.exe", "Install-WindowsFeature NET-Framework-45-ASPNET"]
RUN ["powershell.exe", "Install-WindowsFeature Web-Asp-Net45"]
#install Crystal reports runtime
COPY Resources/Files/CRRuntime_64bit_13_0_21.msi .
RUN powershell.exe -Command Start-Process CRRuntime_64bit_13_0_21.msi -ArgumentList '/quiet' -Wait
安装CRRuntime_64bit_13_0_21.msi失败。我登录到我的container,从powershell运行msi安装,并生成了一个日志。它很长,但有两件事很突出:
1.错误1904。模块C:\程序文件(x86)\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win64_x64\pageobjectmodel.dll无法注册。HRESULT-2147024770。请与您的支持人员联系。操作结束时间:17:20:50:安装完成。返回值3。
1.行动结束时间17:23:56:安装。返回值3。MSI(3C:54)[17:23:56:467]:产品:用于.NET Framework(64位)的SAP Crystal Reports运行时引擎--安装操作失败。MSI(3C:54)[17:23:56:467]:Windows安装程序已安装该产品。产品名称:适用于.NET Framework(64位)的SAP Crystal Reports运行时引擎。产品版本:13.0.21.2533.产品语言:1033.制造商:SAP。安装成功或错误状态:1603.
第一个错误似乎没有停止安装。
我们欢迎您提出任何解决此问题的建议,以及创建映像的替代方法。
此外,只是确认。网站加载和运行良好。我只是不能使用任何功能,需要水晶报表依赖。
2条答案
按热度按时间hsgswve41#
使用完整的Windows 2019容器
mcr.microsoft.com\windows:1809
作为基础,安装程序可以工作,这暗示了它只是缺少操作系统组件。我没有记录"错误1904",但可能我在不同的主机操作系统上。
安装程序日志显示自定义操作SetASPDotNetDllPath失败。
如果您:
dumpbin
)这显示了对
oledlg.dll
的依赖关系。这是其唯一的依赖关系,在服务器核心中不可用。它不是很好,但你可以从完整的Windows容器复制这个版本来修复它:
gmxoilav2#
我将添加一个额外的答案,虽然Peters答案工作完美的安装水晶报告,我有一个额外的问题,丢失字体时,从水晶报告导出到PDF。
这就是我最终得到的结果。关键是图像标签名称的变化是一个旧版本。
由于某种原因,微软从1803版到1809版减少了很多字体。我只能假设减少操作系统映像大小。