基于麒麟服务器V10的.NET部署、运行 + 金仓数据库

一言而论:基于麒麟服务器V10的.NET部署、运行,涉及的信创产品有麒麟、金仓,使用了.NET 6 API


前言

紧跟着笔者的上一篇文章《银河麒麟V10的使用》,这次笔者调研的内容是.NET在麒麟上的部署、人大金仓数据库在麒麟上的安装,以及.NET与金仓的通讯。


环境

硬件环境

开发机:Windows电脑
宿主机:Windows电脑

软件环境

  • 麒麟服务器V10 兼容版
  • 金仓数据库KingbaseES V8.0(下面简称KES)
  • MobaXterm
  • .NET 6 runtimes
  • Visual Studio 2022(下面简称VS2022)

麒麟安装.NET

  • 麒麟官网找到文档《银河麒麟高级服务器操作系统软件适配常见问题指导手册》(下面简称指导手册)并下载
  • 在麒麟上,从微软官网上下载.NET6环境,建议以官网为准,微软.NET 6
  • 在麒麟上找到下载好的tar.gz包,在这个路径中进入终端;
  • 从指导手册的目录中找到.NET CORE的安装,这里我们主要是安装.NET6 ,其他变化不大
 
sudo su #提权
mkdir -p $HOME/dotnet && tar zxf aspnetcore-runtime-6.0.21-linux-x64.tar.gz -C $HOME/dotnet  #创建文件夹并解压到指定文件夹
vi /etc/profile  #打开配置文件
#在文件内加入这两个,写入全局环境变量
export DOTNET_ROOT=$HOME/dotnet
export PATH=$PATH:$DOTNET_ROOT

source /etc/profile #退出文件后,重新执行此文件
dotnet --info #查看.NET 信息
dotnet --version #查看.NET 版本信息

麒麟安装金仓数据库

按照《安装kingbaseES》章节-《图形化安装》操作即可
KingbaseES V8 — KingbaseES产品手册

另外,KES的管理系统KStudio(下面简称KS)在数据库安装完毕后,会跟着一起被安装,这一点和SQLServer、SSMS的分开安装不同。
为了在下面的.NET 中使用,我们使用KS来新建库、表。

需要注意点:使用企业版权限,而不是开发版权限

.NET与KES通讯

这里我们使用VS2022直接新建.NET 6 API;这里就不多说.NET怎么用了,主要讲一下需要下载个包来调用KES——sqlsugarcore.kdbndp
Nuget包下载
然后使用类似SQLServer,只是对应的类型换一下,比如SQLCommand换成KDBCommand;编程指导可以看这个:金仓数据库.NET开发案例

另外,为了能在局域网调试,将麒麟的防火墙开放数据库端口54321

firewall-cmd --list-all #展示目前防火墙规则列表
firewall-cmd --permanent --add-port=54321/tcp #添加tcp端口
firewall-cmd --reload #重新加载防火墙

麒麟部署.NET

微软文档显示可以在Linux上,通过apache或者nginx来部署.NET,这里我们为看效果,直接使用.NET自带的kestrel进行部署,对另外两种方式感兴趣的朋友们可以看下面的链接。

Host ASP.NET Core on Linux with Apache | Microsoft Learn
Host ASP.NET Core on Linux with Nginx | Microsoft Learn

  1. 先将开发机上打包好的publish文件夹拷贝到麒麟上;
  2. 在麒麟上,进入到publish文件夹中,一直进入到 WebApplication.dll路径下(看你的项目取名是啥,我这个是VS创建.NET时默认的名称)
  3. 在此路径下打开终端,然后输入下面命令,添加80端口到防火墙
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload
  1. 部署dll
dotnet WebApplication1.dll --urls "http://*:80"
  1. 在开发机上访问浏览器,输入url即可——
http://192.168.197.136/swagger/index.html

总结

本博客讲解了如何在麒麟V10上部署并运行.NET、安装金仓数据库并实现.NET与金仓进行通讯

参考资料

猜你喜欢

转载自blog.csdn.net/xiaoLongww/article/details/132882239