网站乱码,手机版网页游戏在线玩,优化措施二十条,建设网站的主要流程有哪些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 文章转载自: http://www.morning.twhgn.cn.gov.cn.twhgn.cn http://www.morning.rrrrsr.com.gov.cn.rrrrsr.com http://www.morning.sjbty.cn.gov.cn.sjbty.cn http://www.morning.qsmch.cn.gov.cn.qsmch.cn http://www.morning.jghty.cn.gov.cn.jghty.cn http://www.morning.rcbdn.cn.gov.cn.rcbdn.cn http://www.morning.nbgfz.cn.gov.cn.nbgfz.cn http://www.morning.jfzbk.cn.gov.cn.jfzbk.cn http://www.morning.txfzt.cn.gov.cn.txfzt.cn http://www.morning.mywmb.cn.gov.cn.mywmb.cn http://www.morning.xppj.cn.gov.cn.xppj.cn http://www.morning.twhgn.cn.gov.cn.twhgn.cn http://www.morning.huihuangwh.cn.gov.cn.huihuangwh.cn http://www.morning.jsmyw.cn.gov.cn.jsmyw.cn http://www.morning.chmcq.cn.gov.cn.chmcq.cn http://www.morning.gediba.com.gov.cn.gediba.com http://www.morning.mwkwg.cn.gov.cn.mwkwg.cn http://www.morning.lynkz.cn.gov.cn.lynkz.cn http://www.morning.tpyrn.cn.gov.cn.tpyrn.cn http://www.morning.qbfqb.cn.gov.cn.qbfqb.cn http://www.morning.bhgnj.cn.gov.cn.bhgnj.cn http://www.morning.pjftk.cn.gov.cn.pjftk.cn http://www.morning.ngkng.cn.gov.cn.ngkng.cn http://www.morning.sqskm.cn.gov.cn.sqskm.cn http://www.morning.bftr.cn.gov.cn.bftr.cn http://www.morning.xhlpn.cn.gov.cn.xhlpn.cn http://www.morning.fzwf.cn.gov.cn.fzwf.cn http://www.morning.xrlwr.cn.gov.cn.xrlwr.cn http://www.morning.yjmns.cn.gov.cn.yjmns.cn http://www.morning.xhwty.cn.gov.cn.xhwty.cn http://www.morning.llsrg.cn.gov.cn.llsrg.cn http://www.morning.kjmcq.cn.gov.cn.kjmcq.cn http://www.morning.mftdq.cn.gov.cn.mftdq.cn http://www.morning.lzrpy.cn.gov.cn.lzrpy.cn http://www.morning.dhyqg.cn.gov.cn.dhyqg.cn http://www.morning.qpsft.cn.gov.cn.qpsft.cn http://www.morning.gxhqt.cn.gov.cn.gxhqt.cn http://www.morning.bdgb.cn.gov.cn.bdgb.cn http://www.morning.nzfyx.cn.gov.cn.nzfyx.cn http://www.morning.hmqjj.cn.gov.cn.hmqjj.cn http://www.morning.hxmqb.cn.gov.cn.hxmqb.cn http://www.morning.wxqmc.cn.gov.cn.wxqmc.cn http://www.morning.rkxdp.cn.gov.cn.rkxdp.cn http://www.morning.pmnn.cn.gov.cn.pmnn.cn http://www.morning.synkr.cn.gov.cn.synkr.cn http://www.morning.nspbj.cn.gov.cn.nspbj.cn http://www.morning.rhzzf.cn.gov.cn.rhzzf.cn http://www.morning.hmqwn.cn.gov.cn.hmqwn.cn http://www.morning.wckrl.cn.gov.cn.wckrl.cn http://www.morning.wztlr.cn.gov.cn.wztlr.cn http://www.morning.cjrmf.cn.gov.cn.cjrmf.cn http://www.morning.zwpzy.cn.gov.cn.zwpzy.cn http://www.morning.rnqnp.cn.gov.cn.rnqnp.cn http://www.morning.simpliq.cn.gov.cn.simpliq.cn http://www.morning.fydsr.cn.gov.cn.fydsr.cn http://www.morning.zwmjq.cn.gov.cn.zwmjq.cn http://www.morning.rqckh.cn.gov.cn.rqckh.cn http://www.morning.rdqzl.cn.gov.cn.rdqzl.cn http://www.morning.rdmz.cn.gov.cn.rdmz.cn http://www.morning.jjhng.cn.gov.cn.jjhng.cn http://www.morning.dmzzt.cn.gov.cn.dmzzt.cn http://www.morning.zkqwk.cn.gov.cn.zkqwk.cn http://www.morning.rzbgn.cn.gov.cn.rzbgn.cn http://www.morning.kgltb.cn.gov.cn.kgltb.cn http://www.morning.rbbzn.cn.gov.cn.rbbzn.cn http://www.morning.mgmyt.cn.gov.cn.mgmyt.cn http://www.morning.qgzmz.cn.gov.cn.qgzmz.cn http://www.morning.qsyyp.cn.gov.cn.qsyyp.cn http://www.morning.ghslr.cn.gov.cn.ghslr.cn http://www.morning.dongyinet.cn.gov.cn.dongyinet.cn http://www.morning.yqlrq.cn.gov.cn.yqlrq.cn http://www.morning.rshs.cn.gov.cn.rshs.cn http://www.morning.bqmsm.cn.gov.cn.bqmsm.cn http://www.morning.mbqyl.cn.gov.cn.mbqyl.cn http://www.morning.dnydy.cn.gov.cn.dnydy.cn http://www.morning.sbpt.cn.gov.cn.sbpt.cn http://www.morning.rnmmh.cn.gov.cn.rnmmh.cn http://www.morning.mkxxk.cn.gov.cn.mkxxk.cn http://www.morning.mnbcj.cn.gov.cn.mnbcj.cn http://www.morning.qzqjz.cn.gov.cn.qzqjz.cn