订做网站云南本地企业做网站

当前位置: 首页 > news >正文

订做网站,云南本地企业做网站,微分销系统的规范问题,网站建设实施流程FreeSpire.XLS Aspose.Cells包都可以实现。实现过程中发现如下问题#xff1a; 本地测试通过#xff0c; docker部署服务器后报错#xff1a; The type initializer for Spire.Xls.Core.Spreadsheet.XlsPageSetupBase threw an exception. 由于缺少依赖#xf…FreeSpire.XLS Aspose.Cells包都可以实现。实现过程中发现如下问题 本地测试通过 docker部署服务器后报错 The type initializer for Spire.Xls.Core.Spreadsheet.XlsPageSetupBase threw an exception. 由于缺少依赖 libc6-devlibgdipluslibx11-dev。由于目标服务器为内网环境无外网环境。官网给出答案在dockerfile中 增加 RUN apt-get update \ apt-get install -y –allow-unauthenticated \ libc6-dev \  libgdiplus \ libx11-dev \   rm -rf /var/lib/apt/lists/* 尝试解决 创建docker镜像。由于项目已 mcr.microsoft.com/dotnet/aspnet:6.0-bullseye-slim 为基础镜像以此新建一个环境镜像。

进入容器部署环境

docker run -it mcr.microsoft.com/dotnet/aspnet:6.0-bullseye-slim /bin/bash apt-get update \ apt-get install -y –allow-unauthenticated \ libc6-dev \ libgdiplus \ libx11-dev \ rm -rf /var/lib/apt/lists/*#部署成功后 退出容器并将容器打包为新镜像。 docker commit -adjc -madd libc6-dev,libgdiplus,libx11-dev based on .netcore5.0 28a66ebccd55 dotnetcore-djc:5.2

-a :作者 -m: 备注信息 28a66xxx : 容器id可通过docker ps -a 查看 #新的镜像名称为dotnetcore-djc:5.2vs项目dockerfile中修改基础镜像FROM dotnetcore-djc:5.2 AS base

发布后又报错System.TypeInitializationException: The type initializer for ‘Gdip’ threw an exception. google后发现 libgdiplus 包使用了 System.Drawing.Common .net6后仅在window上支持我目前使用.net5, 也是平台兼容性报错不知为何。 尝试解决 在项目中添加如下代码 AppContext.SetSwitch(System.Drawing.EnableUnixSupport, true); 发布后又报错Index was out of range. Must be non-negative and less than the size of the collection. (Parameter index) 尝试解决 升级 FreeSpire.XLS 包 由原来的 10.10.0 升级为 12.7.0 导出图片后发现中文字体乱码。 尝试解决 #将window中 C:\Windows\fonts 内需要得字体拷贝至容器内 /usr/share/fonts/windows文件夹内。 #更改字体库的权限 chmod 755 /usr/share/fonts/windows/*#进入文件夹内 mkfontscale  //字体扩展 mkfontdir  //新增字体目录 fc-cache-fv  //刷新缓存#肯定会报错mkfontscale: command not found 等

由于Docker mcr.microsoft.com/dotnet/aspnet:5.0 基础镜像中不包含该包需手动安装。

apt-get update apt-get upgrade  apt-get install ttf-mscorefonts-installer // 安装mkfontscale  mkfontdir  命令#报错 package ttf-mscorefonts-intaller has no installation candidate 错误。 #由于系统初始的资源库找不到指定的包需要更新 对应 的镜像地址。 #我的/etc/apt/sources.list 中 初始镜像地址为 Debian buster  所以添加如下镜像至sources.list中。 #如果添加版本错误的话update 会报错。 #华为云 deb https://mirrors.huaweicloud.com/debian/ buster main contrib non-free deb https://mirrors.huaweicloud.com/debian/ buster-updates main contrib non-free deb https://mirrors.huaweicloud.com/debian/ buster-backports main contrib non-free deb https://mirrors.huaweicloud.com/debian-security/ buster/updates main contrib non-freedeb-src https://mirrors.huaweicloud.com/debian/ buster main contrib non-free deb-src https://mirrors.huaweicloud.com/debian/ buster-updates main contrib non-free deb-src https://mirrors.huaweicloud.com/debian/ buster-backports main contrib non-free #中科大 deb https://mirrors.ustc.edu.cn/debian/ buster main contrib non-free deb https://mirrors.ustc.edu.cn/debian/ buster-updates main contrib non-free deb https://mirrors.ustc.edu.cn/debian/ buster-backports main contrib non-free deb https://mirrors.ustc.edu.cn/debian-security/ buster/updates main contrib non-freedeb-src https://mirrors.ustc.edu.cn/debian/ buster main contrib non-free deb-src https://mirrors.ustc.edu.cn/debian/ buster-updates main contrib non-free deb-src https://mirrors.ustc.edu.cn/debian/ buster-backports main contrib non-free deb-src https://mirrors.ustc.edu.cn/debian-security/ buster/updates main contrib non-free# 添加后刷新 apt-get update apt-get upgrade  apt-get install ttf-mscorefonts-installer // 安装mkfontscale  mkfontdir  命令 apt-get install fontconfig //安装 fc-cache 命令 修改 .sln 同目录下的Dockerfile文件内容如下 #See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.#这种模式是直接在构建镜像的内部编译发布dotnet项目。 #注意下容器内输出端口是9291 #如果你想先手动dotnet build成可执行的二进制文件然后再构建镜像请看.Api层下的dockerfile。FROM mcr.microsoft.com/dotnet/aspnet:6.0-bullseye-slim AS base WORKDIR /app EXPOSE 80FROM mcr.microsoft.com/dotnet/sdk:6.0-bullseye-slim AS build WORKDIR /src COPY [ShutterPro.Core.Api/ShutterPro.Core.Api.csproj, ShutterPro.Core.Api/] COPY [ShutterPro.Core.Extensions/ShutterPro.Core.Extensions.csproj, ShutterPro.Core.Extensions/] COPY [ShutterPro.Core.Tasks/ShutterPro.Core.Tasks.csproj, ShutterPro.Core.Tasks/] COPY [ShutterPro.Core.IServices/ShutterPro.Core.IServices.csproj, ShutterPro.Core.IServices/] COPY [ShutterPro.Core.Model/ShutterPro.Core.Model.csproj, ShutterPro.Core.Model/] COPY [ShutterPro.Core.Common/ShutterPro.Core.Common.csproj, ShutterPro.Core.Common/] COPY [ShutterPro.Core.Services/ShutterPro.Core.Services.csproj, ShutterPro.Core.Services/] COPY [ShutterPro.Core.Repository/ShutterPro.Core.Repository.csproj, ShutterPro.Core.Repository/] COPY [ShutterPro.Core.EventBus/ShutterPro.Core.EventBus.csproj, ShutterPro.Core.EventBus/] RUN dotnet restore ShutterPro.Core.Api/ShutterPro.Core.Api.csproj COPY . . WORKDIR /src/ShutterPro.Core.Api RUN dotnet build ShutterPro.Core.Api.csproj -c Release -o /app/buildFROM build AS publish RUN dotnet publish ShutterPro.Core.Api.csproj -c Release -o /app/publishFROM base AS final WORKDIR /app COPY –frompublish /app/publish . EXPOSE 9291 ENTRYPOINT [dotnet, ShutterPro.Core.Api.dll]RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak \mv sources.list /etc/apt/ \apt-get update -y \apt-get install -y –allow-unauthenticated libc6-dev libgdiplus libx11-dev fonts-wqy-zenhei ttf-mscorefonts-installer fontconfig \apt-get clean \ln -s /usr/lib/libgdiplus.so /usr/lib/gdiplus.dll 同目录下新增一个  sources.list 文件内容如下 deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free

deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-freedeb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free

deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-freedeb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free

deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-freedeb https://security.debian.org/debian-security bullseye-security main contrib non-free

deb-src https://security.debian.org/debian-security bullseye-security main contrib non-free 重新部署后一切正常。

参考 [1]: https://www.e-iceblue.com/forum/exception-the-type-initializer-for-spire-xls-core-spreadsh-t10260.html [2]: https://docs.telerik.com/reporting/knowledge-base/system-drawing-common-is-not-supported-on-non-windows-platforms [3]: https://www.lllxy.net/Blog/Detail/634b2769-5046-45eb-b71b-fe2a87b7c1fe