Posted in .net core 

服务 CPU 或 内存偶尔飙高是部署环境中经常遇到的问题,一般会采用记录日志的方式来诊断,不过有些情况靠日志可能并不能分析出个所以然,面对实在无头绪的问题也只能暂时使用重启大法先恢复。

为了尽可能精准的定位问题,掌握通过 dump 分析服务运行堆栈信息也是非常必要的,本文将分别介绍如何对 .NET Core 2.2 和 .NET Core 3.1 项目进行 dump 分析(这里只针对 Linux 下使用容器部署的方式)。

Read more →
Posted in .net core 

今天测试.net core 2.2到3.1时,顺便更新了EPPlus版本。导出excel时报错:

2021-03-31 20:51:27,481 [5] ERRORStaffController - OfficeOpenXml.LicenseException: Please set the ExcelPackage.LicenseContext property. See https://epplussoftware.com/developers/licenseexception
   at OfficeOpenXml.ExcelPackage.get_Workbook()
   at OfficeOpenXml.ExcelPackage.CreateBlankWb()
   at OfficeOpenXml.ExcelPackage.ConstructNewFile(String password)
   at OfficeOpenXml.ExcelPackage..ctor(FileInfo newFile)
   at PartnerPlatform.Service.StaffExport.ExportExcelSingleWorksheets(IDbConnection dbConnection, String sWebRootFolder, String fileName, List`1 staff) in /Users/jinyazhou/Test/PartnerPlatform/Service/ExcelExport.cs:line 43
   at PartnerPlatform.Controllers.StaffController.Export() in /Users/jinyazhou/Test/Controllers/ExcelController.cs:line 19
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/3.1.13/System.Runtime.Serialization.Primitives.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.

原因:
EPPlus 5.0 以后的版本需要指定 商业证书 或者非商业证书。你需要在代码里指定证书或者降低EPPlus版本。在代码里面指定非商业证书:

ExcelPackage.LicenseContext = LicenseContext.NonCommercial;

参考资料:
https://www.hierror.com/exception/article/139035

Posted in .net core 

需求分析

目前个人网站是使用MWeb写作,然后生成本地html,使用GoodSync通过FTP把本地html同步到网站服务器。

GoodSync功能强大,但是收费软件,过试用期会定期弹窗,且免费版不能同步超过100个文件。

WX20210226-101715

所以我尝试自己写一个同步软件,满足以下功能即可:

  • 指定目录所有的文件,定时同步到FTP远程目录
  • 不要求最终一致性,FTP远程目录内文件允许冗余
  • 空文件夹不做处理
Read more →
Posted in .net core 

未雨绸缪,公司IoT项目中可能会出现的情况:

  • 多个TCP(UDP)/MQTT服务运行在多台服务器,每台服务器产生大量零碎化的日志文件。如果要查询某台设备某个时段的日志,需要定位到设备的日志文件的服务器,然后去那台服务器拉取日志文件到本地(或在线查找)。
  • 如果把log存到数据库(mysql),按天分表,因每天产生大量的数据,导致查询很慢。

    目前项目量级较小,只想在不增加运维工作的基础上,做轻量级的实现。Exceptionless和ELK太过重量级,也不想为了存储日志单独安装MongoDB。

    目前暂定两个方案:
    1、GRPC
    2、Redis
Read more →