前言

 .net core跨平台版本基于.net core 3.1 SDK开发,剥离原来的基于MS Office进行文档转换功能的模块,使用基于开源跨平台的LibreOffice进行文档转换的模块。以此实现跨平台部署。由于LibreOffice同时只能有一个进程进行文档转换,为了提高转换效率,引入Docker进行LibreOffice转换进程隔离。经过测试,目前支持Windows和Linux操作系统。

Windows部署系统

  1. 推荐使用Windows Server2016和Windows Server2019服务器操作系统及Windows10桌面版操作系统(Docker只支持这些系统)。
  2. 为了开发调试方便以及简单化部署(对转换性能要求不高),系统也支持免Docker部署,这种场景下一次只能转换一个文档,需要操作系统安装LibreOffice。支持的操作系统为Windows Server 2008、Windows Server 2012服务器操作系统及Windows7桌面版操作系统。
  3. 基于Docker部署流程

(1)     安装操作系统。

(2)     安装MySQL8.0数据库。

(3)     安装.NET Core 3.1 SDK。

(4)     安装Docker for Windows Desktop。

(5)     导入docker转换镜像。(参考下文导入Docker镜像)

(6)     解压缩程序到指定目录。

(7)     修改程序目录下appsettings.json文件,将ConvertSetting节点下的ConcurrentCounts(同时转换文档数量,即Docker实例数量)设置为合适的值。建议该值设置为CPU内核数,最小1,最大32。

(8)     初始化数据库表结构。

(9)     创建服务。

(10)  启动服务。

(11)  登录系统,进行系统授权。

  1. 免Docker部署流程

(1)     安装操作系统。

(2)     安装MySQL8.0数据库。

(3)     安装.NET Core 3.1 SDK。

(4)     安装LibreOffice。

(5)     解压缩管理端程序到指定目录。

(6)     修改程序目录下appsettings.json文件,将ConvertSetting节点下的ConcurrentCounts(同时转换文档数量,即Docker实例数量)设置为1。1表示不启用Docker进行并发转换。

(7)     初始化数据库表结构。

(8)     创建服务。

(9)     启动服务。

(10)  登录系统,进行系统授权。

Linux部署系统

.Net Core3.1支持以下Linux操作系统

Docker支持以下Linux操作系统

综合考虑,系统选用CentOS7 Linux操作系统。

  1. 基于Docker部署流程

(1)     安装操作系统。

(2)     安装MySQL8.0数据库。(参考下文CentOS7部署MySQL)

(3)     安装.NET Core 3.1 SDK。(参考下文CentOS7部署 .NET Core 3.1)

(4)     安装Docker。(参考下文CentOS7部署Docker)

(5)     导入docker转换镜像。(参考下文导入Docker镜像)

(6)     解压缩管理端程序到指定目录。

(7)     修改程序目录下appsettings.json文件,将ConvertSetting节点下的ConcurrentCounts(同时转换文档数量,即Docker实例数量)设置为合适的值。建议该值设置为CPU内核数,最小1,最大32。

(8)     初始化数据库表结构。

(9)     启动程序。

(10)  登录系统,进行系统授权。

  1. 免Docker部署流程

(1)     安装操作系统。

(2)     安装MySQL8.0数据库。(参考下文CentOS7部署MySQL)

(3)     安装.NET Core 3.1 SDK。(参考下文CentOS7部署 .NET Core 3.1)

(4)     安装LibreOffice。(参考下文CentOS7部署LibreOffice)

(5)     导入docker转换镜像。(参考下文导入Docker镜像)

(6)     解压缩管理端程序到指定目录。

(7)     修改程序目录下appsettings.json文件,将ConvertSetting节点下的ConcurrentCounts(同时转换文档数量,即Docker实例数量)设置为1。1表示不启用Docker进行并发转换。

(8)     初始化数据库表结构。

(9)     启动程序。

(10)  登录系统,进行系统授权。

依赖项部署

上传文件到CentOS7

使用XFTP6通过ssh连接操作系统后即可上传文件。

CentOS7部署Docker

  1. 卸载旧版本

yum remove docker \

docker-client \

docker-client-latest \

docker-common \

docker-latest \

docker-latest-logrotate \

docker-logrotate \

docker-engine

  1. 安装本地rpm包

rpm -ivh *.rpm --nodeps –force

  1. 启动Docker服务

systemctl start docker

  1. 测试Docker是否正确安装

docker image ls

  1. 导入文档转换镜像 centos7_soffice.tar

docker load --input centos7_soffice.tar

导入Docker镜像

Windows系统打开命令行或Windows Power Shell,Linux系统打开Bash,然后执行:

docker load --input <镜像文件路径>

如:docker load --input /root/centos7_soffice.tar

CentOS7部署MySQL

  1. 卸载MariaDB

通过 rpm -qa | grep mariadb 命令查看 mariadb 的安装包

通过 rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps 命令装卸 mariadb

  1. 解压tar包
  2. 依次安装

rpm -ivh mysql-community-common-8.0.18-1.el7.x86_64.rpm --nodeps --force

rpm -ivh mysql-community-libs-8.0.18-1.el7.x86_64.rpm --nodeps --force

rpm -ivh mysql-community-client-8.0.18-1.el7.x86_64.rpm --nodeps --force

rpm -ivh mysql-community-server-8.0.18-1.el7.x86_64.rpm --nodeps --force

  1. 初始化数据库,依次执行

mysqld --initialize

chown mysql:mysql /var/lib/mysql -R

systemctl start mysqld.service

systemctl enable mysqld

  1. 查看数据库root密码 cat /var/log/mysqld.log | grep password
  2. 登录数据库mysql -uroot -p

此时已进入mysql控制台,再输入的就是SQL语句(以分号结尾,否则不执行),不是Linux命令了

  1. 修改mysql 的root用户密码(必须修改默认密码)

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123.root@zst';

  1. 开放防火墙

查询端口是否开启:firewall-cmd --query-port=3306/tcp

开启端口:firewall-cmd --zone=public --add-port=3306/tcp --permanent

重启防火墙:firewall-cmd --reload

查看所有开启的端口:firewall-cmd --list-port

CentOS7部署LibreOffice

官方安装教程:https://zh-cn.libreoffice.org/get-help/install-howto/linux/

  1. 解压缩tar包

tar -xvf LibreOffice_6.3.3_Linux_x86-64_rpm.tar.gz

tar -xvf LibreOffice_6.3.3_Linux_x86-64_rpm_helppack_zh-CN.tar.gz

tar -xvf LibreOffice_6.3.3_Linux_x86-64_rpm_langpack_zh-CN.tar.gz

  1. 安装LibreOffice

rpm -ivh ./LibreOffice_6.3.3_Linux_x86-64_rpm/RPMS/*.rpm --nodeps --force

/* 安装主安装程序的所有rpm包 */

rpm -ivh ./LibreOffice_6.3.3_Linux_x86-64_rpm_langpack_zh-CN/RPMS/*.rpm --nodeps --force

/* 安装中文语言包中的所有rpm包 */

rpm -ivh ./LibreOffice_6.3.3_Linux_x86-64_rpm_helppack_zh-CN/RPMS/*.rpm --nodeps --force

/* 安装中文离线帮助文件中的所有rpm包 */

CentOS7部署.NET Core SDK

  1. 卸载

dotnet --list-sdks

yum remove dotnet-host

sudo rm -rf /usr/share/dotnet/sdk/1.0.1

sudo rm -rf /usr/share/dotnet/shared/Microsoft.NETCore.App/1.0.1

sudo rm -rf /usr/share/dotnet/shared/Microsoft.AspNetCore.App/1.0.1

sudo rm -rf /usr/share/dotnet/host/fxr/1.0.1

1.0.1为示例,根据list-sdks实际结果替换

参考教程:https://docs.microsoft.com/en-us/dotnet/core/versions/remove-runtime-sdk-versions?tabs=linux

  1. 安装dotnet-sdk

mkdir -p $HOME/dotnet && tar zxf dotnet-sdk-3.1.100-rhel.6-x64.tar.gz -C $HOME/dotnet

export DOTNET_ROOT=$HOME/dotnet

export PATH=$PATH:$HOME/dotnet

vim ~/.bashrc

#在文件末尾增加

export PATH=$PATH:$HOME/dotnet

export DOTNET_ROOT=$HOME/dotnet

其他

  1. 解压缩WebCore程序:unzip WebCore*.zip
  2. 启动主程序:dotnet NPSWebCore.dll

2019-12-13

张林

.net core系统跨平台部署手册的更多相关文章

  1. ASP.NET Core托管和部署Linux实操演练手册

    一.课程介绍 ASP.NET Core 是一种全新的跨平台开源 .NET 框架,能够在 IIS.Nginx.Apache.Docker 上进行托管或在自己的进程中进行自托管. 作为一个.NET Web ...

  2. 使用VS Code 开发.NET Core 应用程序 部署到Linux 跨平台

    使用VS Code 开发.NET Core 应用程序 部署到Linux 跨平台. 前面讲解了VSCode开发调试 .NET Core.都只是在windows下运行. .NET Core真正的核心是跨平 ...

  3. .NET Core跨平台部署

    目录 .NET Core跨平台部署 1. Windows-IIS 1.1 安装.NET Core Windows Server Hosting 1.2 配置应用程序池 1.3 使用发布文件 2 Lin ...

  4. ASP.NET Core开发Docker部署

    ASP.NET Core开发Docker部署,.NET Core支持Docker 部署运行.我们将ASP.NET Core 部署在Docker 上运行. 大家可能都见识过Docker ,今天我们就详细 ...

  5. 如何将.Net Core应用程序部署在Linux操作系统上运行

    .Net Core简介 跨平台: 可以在 Windows.macOS 和 Linux 操作系统上运行. 跨体系结构保持一致: 在多个体系结构(包括 x64.x86 和 ARM)上以相同的行为运行代码. ...

  6. ASP.NET Core开发-Docker部署运行

    ASP.NET Core开发Docker部署,.NET Core支持Docker 部署运行.我们将ASP.NET Core 部署在Docker 上运行. 大家可能都见识过Docker ,今天我们就详细 ...

  7. glusterFS系统中文管理手册(转载)

    GlusterFS系统中文管理手册       1文档说明 该文档主要内容出自 www.gluster.org 官方提供的英文系统管理手册<Gluster File System 3.3.0 A ...

  8. MariaDB Galera Cluster部署手册

    MariaDB Galera Cluster部署手册 galara保证双主数据库的同步及一致性 1.环境准备 基于新部署.最小化安装centos6.5 1>  yum install opens ...

  9. ASP.NET Core 1.0 部署 HTTPS (.NET Framework 4.5.1)

    var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...

随机推荐

  1. 响应式导航菜单(css+js)

    1.响应式导航菜单 先来看下效果图把: 当视口大于640px的时候,导航条会显示在外,当视口小于768px的时候,导航菜单需要隐藏起来!代码如下: <!doctype html> < ...

  2. Python-Requests库的安装和调用

    #使用pip或者pip3安装requests库pip3 install requests #requests库:python #输入python进入命令行模式在cmd命令行中依次运行以下代码,或者直接 ...

  3. 浅析SIEM、态势感知平台、安全运营中心

    近年来SIEM.态势感知平台.安全运营中心等概念炒的火热,有的人认为这都是安全管理产品,这些产品就是一回事,有人认为还是有所区分.那么到底什么是SIEM.什么是态势感知平台.什么是安全运营中心,他们之 ...

  4. 简说Python之图形初体验

    针对孩子,最容易引起小孩的感官认知的就是图形.因此,系统运用图形编程,可以更好地让孩子喜欢上编程. turtle叫做,Turtle graphics.是python第三方的画图模块工具.可以通过imp ...

  5. 鸡汤 & 毒鸡汤

    1.别低估任何人. 2.你没那么多观众,别那么累. 3.温和对人对事.不要随意发脾气,谁都不欠你的. 4.现在很痛苦,等过阵子回头看看,会发现其实那都不算事. 5.和对自己有恶意的人绝交.人有绝交,才 ...

  6. css中:如何让一个图片(不知道宽高,宽高可能比父元素div大),在父元素div内部水平垂直居中,并且不溢出父元素div,且图片不拉伸变形(可等比例缩小)?

    欢迎进入:http://www.jscwwd.com/article/list/%E5%85%A8%E9%83%A8 效果图: 不管父元素的宽高怎么变化,图片都是水平垂直居中的,并且不溢出父元素. 注 ...

  7. 使用 notepad 正则转换 字符串

    一..在一堆字符串中找出某一个特定格式的字符串,例如如下 需要摘出 WMID_abc WMID_def WMID_ghi {"abc",WMID_abc,oid_abc} {&qu ...

  8. 深入理解“骑士”漏洞 VoltJockey

    先理解一下题目:VoltJockey: Breaching TrustZone by Software-Controlled Voltage Manipulation over Multi-core ...

  9. 基于.NetCore3.1搭建项目系列 —— 使用Swagger做Api文档 (上篇)

    前言 为什么在开发中,接口文档越来越成为前后端开发人员沟通的枢纽呢? 随着业务的发张,项目越来越多,而对于支撑整个项目架构体系而言,我们对系统业务的水平拆分,垂直分层,让业务系统更加清晰,从而产生一系 ...

  10. 【Weiss】【第03章】练习3.8:有序多项式求幂

    [练习3.8] 编写一个程序,输入一个多项式F(X),计算出(F(X))P.你程序的时间复杂度是多少? Answer: (特例:P==0时,返回1.) 如果P是偶数,那么就递归计算((F(X))P/2 ...