.NET 程序在装有企业防水墙的电脑上运行报错:内存不足

  昨天有个客户反馈,在一台Win10电脑上运行 傲瑞通(OrayTalk),结果点击联系人时,右边的聊天窗口始终出不来。现象如下图所示:

一. 问题排查

  于是,我们远程到客户的这台电脑上,发现这台电脑有装企业防水墙(驱动级自动文件加密),并且傲瑞通的日志内容有如下报错记录:

  System.Drawing.Image.FromFile: 内存不足。

  找到傲瑞通的安装目录,进入图片资源文件夹查看,发现图片文件都被防水墙加密。如下图所示,黄色小锁为文件加密标记。

  到这里,问题已经基本清楚了:客户电脑部署防水墙,程序目录下所有PNG图标文件会被自动加密。当程序使用Image.FromFile()读取加密图片时,直接抛出「内存不足」报错。

  当在防水强中设置目标文件夹下的图片不加密后,程序即可正常加载图标,聊天窗口就可以正常打开了。

二、根本原因 说明

  我们专门了解了一下防水墙的加密原理,并结合GDI+的报错信息,发现:

  1. 防水墙加密会修改PNG文件二进制结构,增加加密头,文件不再是标准图片;

  2. GDI+解析异常文件时,无法识别图像数据,抛出误导性「内存不足」提示(实际上并非真的物理内存不够);

  3. 解密后文件恢复标准PNG格式,程序工作就恢复正常了。

   这是我们第一次接触装有企业防水墙的电脑,企业防水墙全称数据防泄漏防水墙,属于内网数据安全系统,其核心目标是管控企业内部各类数据、防止核心资料外泄。

   由于图片被防水墙加密,而导致.NET程序运行异常。又涨知识了,在这里记录做个备忘,也希望对后来者有所帮助!

相关推荐
企业通信技术笔记2 天前
私有化企业IM验收指南:内网专网、信创终端与OA/ERP/MES消息链路测试清单
即时通讯·企业im·私有化im·私有化即时通讯·内网即时通讯
飞函安全13 天前
企业即时通讯的离线消息如何可靠补发:从“发出去”到“可确认送达”
私有化部署·即时通讯·消息可靠性
海水冷却15 天前
uniappx 实现 IM 聊天:SDK 支持现状、三条集成路径与踩坑实战
uniapp·即时通讯
huijingjituan4316 天前
【专属IM即时通讯平台|让沟通更简单】
即时通讯·极光鸟·灰鲸im·环信im·聊天软件im·三条im·海鸥im
huijingjituan4318 天前
【三方聊天软件工具|定制开发与私有化部署】
安全·即时通讯·对话·聊天·极光鸟
huijingjituan4318 天前
【企业级IM即时通讯系统|定制开发与私有化部署】
安全·即时通讯·对话·聊天·极光鸟
要开心吖ZSH20 天前
腾讯 IM × TRTC 联动实战:后端如何撑起一次视频问诊(混流录制篇)
java·音视频·腾讯云·健康医疗·即时通讯·im
要开心吖ZSH21 天前
腾讯 IM 前端对接小白教程:医患一对一聊天(含自定义报告卡片)
vue·健康医疗·即时通讯·im
hellojackjiang20111 个月前
移动端实时音视频聊天框架 RainbowAV v2.2.7发布
webrtc·实时音视频·即时通讯
XiaoLin laile1 个月前
信创IM安全合规的焦虑与重构
即时通讯·安全合规·数据主权·信创im·选型标准