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

1Panel运行的.net程序无法读取系统字体(因为使用了docker)

问题来源

我之前都是使用的宝塔面板,之前我也部署过我的程序,就没有什么问题,但是上次我部署我的程序的时候,就提示无法找到字体Arial。

我的程序中使用该字体生成验证码。

我多次安装了微软的字体包,但是依旧没有效果。

直到今天,我再次配置一个新的ubuntu系统。

(上一个ubuntu系统已经被我改为windows系统使用了)

缘故

今天又重试了之前的操作,依旧是不行。但我想到了1panel可能是因为使用了docker的缘故。.net 程序跑在docker中,默认的操作当然读取不到系统的文件。

事实上,就是这个缘故。

我在系统上直接执行,没有任何问题。

解决方案

虽然,有的解决方案是说,让使用FontCollection 添加系统的字体路径,但是我还是不想这么做。

于是我还是使用了之前使用的supervisor来配置一个进程守护。

supervisor的使用可以参照Linux进程守护—Supervisor(ubuntu)_linux守护进程工具-CSDN博客

我之前配置的时候参照的这个,这次我问的gpt。

给我的配置中少了一个参数。

directory

导致程序无法正常运行,总是提示在95行有问题。

该路径是程序读取文件的相对路径。没有设置这个,程序读取 appsetting.production.json文件就会出现问题。

基本使用

Supervisor


一个用 Python 写的进程管理工具,专门用来管理和监控多个后台进程。它可以自动重启程序,支持日志管理,配置简单,非常适合部署多个程序。

  • 安装:

    sudo apt install supervisor
    

  • 配置示例

  • /etc/supervisor/conf.d/myapp.conf):

    [program:mydotnetapp]
    command=/usr/bin/dotnet /path/to/yourapp.dll 
    directory=/path/to/workingdir
    autostart=true
    autorestart=true
    stderr_logfile=/var/log/mydotnetapp.err.log
    stdout_logfile=/var/log/mydotnetapp.out.log
    user=youruser
    

    我的程序的配置最终如下

  • [program:ai_server]
    command=dotnet /webs/Turbo-Auth.dll
    directory=/webs/
    autostart=true
    autorestart=true
    stderr_logfile=/var/log/ai_server.err.log
    stdout_logfile=/var/log/ai_server.out.log
    user=root
    

  • 启动和管理:

    sudo supervisorctl reread
    sudo supervisorctl update

 查询状态

sudo supervisorctl status

 

http://www.xdnf.cn/news/12676.html

相关文章:

  • 硬盘寻址全解析:从 CHS 三维迷宫到 LBA 线性王国
  • 栈(Stack)的学习指南
  • 嵌入式学习笔记 - freeRTOS xTaskResumeAll( )函数解析
  • frida简介及环境搭建
  • 【数据结构】6. 时间与空间复杂度
  • AI-Sphere-Butler之如何启动AI全能管家教程(WSL测试环境下适用)
  • C++修炼:C++11(二)
  • GPT-5:不止于回答,AI学会了“思考”
  • MVC分层架构模式深入剖析
  • 2025年—Comfyui聚合插件:Comfyui-LayerStyle 超多实用功能 | 附各功能模型
  • 【R语言编程——数据调用】
  • SpringBoot-17-MyBatis动态SQL标签之常用标签
  • 【MySQL】10.事务管理
  • C++刷题:日期模拟(1)
  • 使用 C++/OpenCV 创建动态流星雨特效 (实时动画)
  • Linux 系统中的算法技巧与性能优化
  • 浅谈 React Hooks
  • 行为型设计模式之Interpreter(解释器)
  • 低功耗MQTT物联网架构Java实现揭秘
  • 八、【ESP32开发全栈指南:UDP客户端】
  • NLP学习路线图(三十):微调策略
  • Python图论与网络可视化——网络结构、路径分析与生物代谢通路
  • 【Linux shell】shell中的变量——构建脚本逻辑的基石
  • 水利工程流速监测中的雷达流速仪
  • FreeRTOS事件组-笔记
  • 33、原子操作
  • C++常用的自动化测试库
  • PostgreSQL数据类型使用
  • 【生活】程序员防猝si指南
  • java_网络服务相关_gateway_nacos_feign区别联系