麒麟 Linux aarch64安装.NET 6,并适配.net应用(达梦数据库)
麒麟 Linux aarch64安装.NET 6并适配.net应用(达梦数据库)适用环境麒麟 Linux aarch64达梦(DM)数据库.NET 6。部署目录约定.NET 运行时/home/hmf/dotnet应用本体/home/hmf一、安装.NET6运行环境wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.shchmod x dotnet-install.sh# 不加 --runtime 参数 装完整 SDK含编译工具链 对应运行时./dotnet-install.sh --channel 6.0 --install-dir /home/hmf/dotnet# 配置环境变量安装在用户目录下写入 ~/.bashrc 即可不需要 rootecho export DOTNET_ROOT/home/hmf/dotnet ~/.bashrcecho export PATH$PATH:/home/hmf/dotnet ~/.bashrcsource ~/.bashrc##验证版本dotnet --infodotnet --list-sdks # 应该能看到 6.0.xdotnet --list-runtimes # 应该能看到 Microsoft.AspNetCore.App 6.0.x 和 Microsoft.NETCore.App 6.0.x离线环境连不了外网改成下载dotnet-sdk-6.0.x-linux-arm64.tar.gzdotnet.microsoft.com传到 tidb 后解压到/home/hmf/dotnet其余步骤一样。#检查版本Version: 6.0.36二、适配应用2.1、准备达梦驱动达梦官网www.dameng.com下载中心用达梦通行证账号登录后下载.NET驱动包文件名类似dotNet-日期.zip解压后会看到几个文件夹比如dmDriver/DmProvider/ - 这个就是我们要用的DM.DmProvider.8.3.1.51364.nupkg - 真正的 NuGet 包文件net40/ net45/ net5.0/ net6.0/ ... - 包展开后按目标框架分的 lib 目录不用管EFCore.Dm6.0/ - Entity Framework Core 驱动本项目用不到不用管把DmProvider这个文件夹整个传到目标机比如放在/home/hmf/dmDriver/DmProvider。注册为本地 NuGet 源dotnet nuget add source /home/hmf/dmDriver/DmProvider --name dm-local如果提示dm-local这个名字已经存在比如之前加过、指向了别的路径改用dotnet nuget update source dm-local --source /home/hmf/dmDriver/DmProvider确认一下dotnet nuget list source# dm-local 那一行应该显示 /home/hmf/dmDriver/DmProvider2.2、加到项目里cd /home/hmf/TestAppdotnet add package DM.DmProvider --version 8.3.1.51364 -s /home/hmf/dmDriver/DmProvider会自动把PackageReference IncludeDM.DmProvider Version8.3.1.51364 /写进TestApp.csproj不用手动改文件。换了机器部署时这一步下载驱动 注册本地源 add package都要重新做一遍因为dotnet nuget add source是注册在当前机器的全局 NuGet 配置里的不会跟着项目代码一起传过去。2.3、还原依赖并编译cd /home/hmf/TestAppdotnet build -c Release2.4、 修改数据库连接配置编辑/home/hmf/TestApp/appsettings.json{ConnectionStrings: {DmConn: Server达梦库地址;Port端口默认5236;User Id用户名;PWD密码;},Kestrel: {Endpoints: {Http: {Url: http://0.0.0.0:8089}}}}监听地址建议用0.0.0.0监听所有网卡而不是写死具体 IP机器换 IP 或有多网卡时更省心。2.5、 运行前先验证数据库网络连通性telnet 达梦库地址 5236# 或nc -zv 达梦库地址 5236有disql等达梦客户端工具的话也可以直接拿账号密码连一下确认OK 之后再启动本应用避免网络问题和应用层报错混在一起排查。2.7、发布并直接运行验证cd /home/hmf/TestAppdotnet publish -c Release -o /home/hmf/TestApp/outcd /home/hmf/TestApp/outdotnet TestDmPlugin.dll看到类似输出说明启动成功Now listening on: http://0.0.0.0:8089Application started. Press CtrlC to shut down.浏览器访问http://10.1.1.229:8089/应看到 select/other 两个 SQL 输入框的界面测试 SQL 确认能正常连上达梦库并返回结果。CtrlC停止后继续第 8 步配置为系统服务长期运行。查看日志页面每次点击execSelect/execOther执行 SQL都会记录一条日志请求的 SQL、成功返回行数/影响行数、或失败时的异常堆栈写入运行目录下的logs文件夹按天滚动/home/hmf/TestApp/out/logs/app-20260720.log日志目录可通过appsettings.json里的Logging:LogDirectory配置默认值logs相对可执行文件所在目录也可以填绝对路径。前台运行第7步和 systemd 服务第8步用的是同一份代码都会写这个日志文件跟终端输出/journalctl是两份独立的记录互不影响。排查问题时优先看这个文件比journalctl更完整包含每次 SQL 请求明细。tail -f /home/hmf/TestApp/out/logs/app-$(date %Y%m%d).log三、配置systemd服务和开放端口3.1、置systemd服务创建/etc/systemd/system/testapp.service[Unit]DescriptionTestApp DM Plugin TestAfternetwork.target[Service]WorkingDirectory/home/hmf/TestApp/outExecStart/home/hmf/dotnet/dotnet /home/hmf/TestApp/out/TestDmPlugin.dllRestartalwaysRestartSec5KillSignalSIGINTSyslogIdentifiertestappUserhmfEnvironmentASPNETCORE_ENVIRONMENTProduction[Install]WantedBymulti-user.target启用并启动systemctl daemon-reloadsystemctl enable testappsystemctl start testappsystemctl status testapp查看日志journalctl -u testapp -f除了 journald应用自身还会把日志写入文件详见下方「日志文件」一节路径固定在/home/hmf/TestApp/out/logs/不受 systemd/前台运行方式影响且不会随终端关闭或服务重启丢失。后续改了代码重新发布只需要cd /home/hmf/TestAppdotnet publish -c Release -o /home/hmf/TestApp/outsystemctl restart testapp3.2、开放防火墙端口# firewalldfirewall-cmd --permanent --add-port8089/tcpfirewall-cmd --reload# 或 iptablesiptables -I INPUT -p tcp --dport 8089 -j ACCEPT四、常见问题现象可能原因处理dotnet build/dotnet add package报找不到 SDK只装了 Runtime没装 SDK回到第 1 步用不带--runtime的命令装完整 SDKdotnet add package DM.DmProvider报NU1101/找不到包本地 NuGet 源没注册对或路径指错了dotnet nuget list source确认dm-local指向的路径就是DmProvider那个文件夹里面直接能看到.nupkg文件的那一层编译报warning MSB3245: Could not locate the assembly DmProvidercsproj里残留旧的Reference HintPath...写法打开TestApp.csproj删掉Reference IncludeDmProvider那一整段只留PackageReference IncludeDM.DmProvider ...连接达梦库报错/超时连接串错误、网络不通、达梦库未开放对应端口先做第 6 步的网络连通性验证检查appsettings.json连接串页面打不开端口未监听/防火墙未放行/进程未启动ss -lntp \| grep 8089确认监听检查systemctl status testapp和防火墙规则中文乱码精简版系统缺少区域/编码支持确认系统已装localezh_CN.UTF-8权限不足无法监听端口非 root 用户尝试监听 1024 以下端口用 1024 以上端口已经是 8089没问题或给可执行文件加setcap cap_net_bind_serviceep五、其他达梦驱动下载达梦官方下载平台离线内网用下载完整 ARM 驱动包主下载页官方入口https://eco.dameng.com/download/两种下载方式获取.NET 驱动下载 DM8 ARM64 开发版安装包推荐CPU 平台鲲鹏 920aarch64/ARM 通用系统银河麒麟 / 统信 UOS下载后解压 / 安装路径dmdbms/drivers/dotNet/内含Dameng.Data.Provider.8.x.x.nupkg离线安装包2、页面底部【工具与驱动】单独下载.NET 驱动下滑页面找到「.NET 开发包」直接下载对应 DM8 版本驱动压缩包。本次我下载的是这个。下载的文件包为dotNet-20260710.zip

相关新闻

计算机毕业设计之基于Vue框架的云停车App的设计与实现

计算机毕业设计之基于Vue框架的云停车App的设计与实现

本文介绍了一款使用laravel基于Vue框架的云停车App,及其设计与实现过程。根据软件工程对软件系统开发定制的规则和标准,详细的介绍了系统的分析与设计过程,并且详细的概括了系统的开发与测试过程。本文的管理系统使用了HBuilderX编辑器以及 u…

2026/7/21 7:04:52 阅读更多 →
计算机毕业设计之基于PHP的个人网站的设计与实现

计算机毕业设计之基于PHP的个人网站的设计与实现

如今,在科学技术飞速发展的情况下,信息化的时代也已因为计算机的出现而来临,信息化也已经影响到了社会上的各个方面。它可以为人们提供许多便利之处,可以大大提高人们的工作效率。随着计算机技术的发展的普及,各个领域…

2026/7/21 7:04:52 阅读更多 →
PowerBI数据准备—获取Sharepoint/Onedrive上的Excel

PowerBI数据准备—获取Sharepoint/Onedrive上的Excel

商业版的SharePoint和OneDrive是支持发布后&#xff0c;云端自动刷新 1、获取访问链接 ①-网页OneDrive 复制路径&#xff08;推荐&#xff09; 浏览器打开 OneDrive 商业版&#xff08;https://<公司>-my.sharepoint.com&#xff09; 找到目标 Excel &#xff0c;点…

2026/7/21 7:04:52 阅读更多 →

最新新闻

用什么AI可以仿写一首流行歌曲|零基础旋律仿写、续写与配曲工具实测分享

用什么AI可以仿写一首流行歌曲|零基础旋律仿写、续写与配曲工具实测分享

一、不懂乐理想仿写流行曲&#xff0c;大部分人会被两件事困住我一直是不会乐理的音乐爱好者&#xff0c;平时喜欢听流行歌&#xff0c;偶尔会想照着喜欢的歌曲风格仿写旋律&#xff0c;或是把自己写好的歌词配上贴合流行质感的曲调&#xff0c;这么多年试过大量AI作曲工具&…

2026/7/22 7:49:45 阅读更多 →
localhost与127.0.0.1的底层差异及开发实践

localhost与127.0.0.1的底层差异及开发实践

1. 本地回环地址的本质区别localhost和127.0.0.1这对看似相同的概念&#xff0c;在实际开发中却可能引发各种意想不到的问题。最近在排查一个MySQL连接异常时&#xff0c;发现使用"localhost"作为连接地址时出现10061错误&#xff0c;而改用"127.0.0.1"却能…

2026/7/22 7:49:45 阅读更多 →
腾讯WorkBuddy AI桌面助手:提升办公效率的终极指南

腾讯WorkBuddy AI桌面助手:提升办公效率的终极指南

1. 为什么你需要WorkBuddy&#xff1f;WorkBuddy是腾讯推出的AI桌面助手&#xff0c;它正在重新定义我们的工作效率。想象一下&#xff0c;当你同时处理多个文档时&#xff0c;突然需要查找某个关键数据&#xff1b;或者正在写报告时&#xff0c;需要快速生成一张图表。传统方式…

2026/7/22 7:49:45 阅读更多 →
第1章_HarmonyOS简介

第1章_HarmonyOS简介

第1章 HarmonyOS 简介HarmonyOS 学习系统 | 阶段一&#xff1a;入门筑基期 建议学习时长&#xff1a;1-2 周学习目标序号能力1了解 HarmonyOS 产生的历史背景与现实动因2理解 HarmonyOS 三大核心特性&#xff08;硬件互助、一次开发、弹性部署&#xff09;3掌握 HarmonyOS 四层…

2026/7/22 7:49:45 阅读更多 →
动画预告片制作全流程:从素材到输出的技术实践指南

动画预告片制作全流程:从素材到输出的技术实践指南

在动画短片创作领域&#xff0c;预告片不仅是作品的门面&#xff0c;更是技术实力与艺术表达的集中体现。第二十届FIRST青年电影展主竞赛入围动画短片《跌倒了要马上站起来》的预告片&#xff0c;从技术角度看&#xff0c;涉及从前期分镜设计、中期动画制作到后期合成输出的完整…

2026/7/22 7:49:45 阅读更多 →
腾讯HY-MT1.5翻译大模型技术解析与应用实践

腾讯HY-MT1.5翻译大模型技术解析与应用实践

1. 腾讯HY-MT1.5翻译大模型的技术定位作为国内首个突破千亿参数规模的商用翻译模型&#xff0c;HY-MT1.5采用了混合专家系统&#xff08;MoE&#xff09;架构设计。其核心创新在于动态路由机制——每个输入句子会通过门控网络自动分配到12个专家子模型中最合适的3个进行处理。这…

2026/7/22 7:48:45 阅读更多 →

日新闻

TI DSP系统配置模块SYSCFG详解:中断机制与主设备优先级配置实战

TI DSP系统配置模块SYSCFG详解:中断机制与主设备优先级配置实战

1. 项目概述与SYSCFG模块的核心价值在嵌入式系统&#xff0c;尤其是像TI C6000系列这样的高性能DSP开发中&#xff0c;我们常常会与芯片手册里那些密密麻麻的寄存器打交道。很多开发者可能更关注算法实现、内存优化或者外设驱动&#xff0c;但对于一个稳定、高效的系统而言&…

2026/7/22 0:00:26 阅读更多 →
微信Server酱:高到达率的应急通知方案实践

微信Server酱:高到达率的应急通知方案实践

1. 为什么我们需要"最次"的通知方案&#xff1f; 在数字化协作环境中&#xff0c;消息通知系统的重要性不言而喻明。但现实情况是&#xff0c;企业级通知方案往往需要复杂的API对接&#xff08;如企业微信、钉钉、飞书&#xff09;&#xff0c;个人开发者的小项目又经…

2026/7/22 0:00:26 阅读更多 →
甲方要的“简洁“PPT,到底是简洁还是省事?

甲方要的“简洁“PPT,到底是简洁还是省事?

甲方说"简洁一点"&#xff0c;乙方听到的是"少做几页"。甲方说"不要太复杂"&#xff0c;乙方理解成"别放图表了"。结果交过去&#xff0c;甲方说"我说的简洁不是这个意思"。"简洁"这个词在PPT语境里&#xff0c;是…

2026/7/22 0:00:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中&#xff0c;我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源&#xff0c;还是配置文件、证书等&#xff0c;都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下&#xff0c;但这…

2026/7/21 8:48:31 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP&#xff08;轻量级目录访问协议&#xff09;作为企业级身份认证的黄金标准&#xff0c;已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时&#xff0c;发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/21 5:34:47 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”&#xff0c;而是以可解释、可审计、可迭代的方式&#xff0c;赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/21 8:25:39 阅读更多 →

月新闻