都是 Thumbs.db 惹的祸

 为了在图片列表中能够根据图片的长宽自动缩放而得到较高质量的thumbnail,如下图:

 

我采取了下面的方法进行缩放:

Code

 

在本地调试一切正常,传到服务器上面,部分的图片报这个错误:

 

初遇此错误,出于对自己写的代码的不放心,检查了无数遍,一无所获;实在无路可走的时候只能瞎走了,于是首先想到的就是 反编译System.Drawing.Image类,看看到底是什么地方的内存溢出,于是安装QFE,在VS2008下面对Framework进行调试,无果,因为本地测试根本没有办法重现错误!

于是抱着试试看的心理,Google “System.OutOfMemoryException: Out of memory.”居然发现N个倒霉蛋和我一样的境遇,都是图像处理导致的内存溢出,只是由于 System.Drawing.Image.FromFile 这个方法造成内存溢出的并不多见,终于,让我发现了下面的文章:

http://weblogs.asp.net/plip/archive/2006/08/04/Image.FromFile_280022002E002E002E0022002900_-and-System.OutOfMemoryException.aspx

“I found out what it was - I'd not limited the file types that my folder search was performing, so it was also picking up the Windows XP automatically generated Thumbs.db, when it loaded that the above exception occurred.
Just thought this might help others out.”

于是恍然大悟,发现自己release的时候确实将repository的图像文件都发布出去了,于是乎Thumbs.db 也被跟着部署到了server上面。所以导致了这样的错误。

于是远程将repository 目录下的Thumbs.db删除,问题便得以解决。

关于 Thumbs.db,园子里有一些文章可以作为参考:

1, GIS的学习  http://www.cnblogs.com/zhangjun1130/archive/2009/01/14/1375836.html

2, 灵感之源 http://www.cnblogs.com/unruledboy/archive/2005/11/06/thumbsdbviewer.html


posted on   Kevin Shi  阅读(2174)  评论(8编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述

导航

< 2009年3月 >
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 1 2 3 4
5 6 7 8 9 10 11
点击右上角即可分享
微信分享提示