blog2026年6月18日· 约 2 分钟

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

Twitter 微博

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

.NET 程序在装有企业防水墙的电脑上运行报错:内存不足。该怎么解决了?

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

        无标题

一. 问题排查#

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

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

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

    2

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

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

二、根本原因****说明#

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

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

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

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

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

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

评论

© 2026 松岛川树