浪潮GS客户端出现内存溢出和存储空间不足的问题说明和解决方案

浪潮GS客户端出现内存溢出和存储空间不足的问题说明和解决方案

近期部分项目反馈GS客户端不定期出现“内存溢出”和“存储空间不足”的问题,该问题出现时往往与特定功能无关,一般是先报出“内存溢出”,点击忽略按钮后,有时紧接着出现“存储空间不足”,整个GS客户端无法继续使用。

经过查阅资料并联系微软确认,是因为windows操作系统在绘图等特定场景下存在内存泄露造成的(WindowsCodecs.dll),存在该问题的操作系统版本有:win7/win8/win8.1/windows server 2008 R2/windows server 2012及R2版本

 

win7win8系统,微软有针对此问题的独立补丁(kb2929755

Download the x86-based Windows 7 update pachage now.

Download the x64-based Windows 7 update pachage now.

Download the x86-based Windows 8 update pachage now.

Download the x64-based Windows 8 update pachage now.

win8.1也存在该问题(kb2919355),请下载更新累计补丁包(没有对应的独立补丁)

Download the x86-based Windows 8.1 update package now.

Download the x64-based Windows 8.1 update package now.

 

 

以下是此问题的报错截图和对应的详细堆栈

 

 

 

异常信息(异常类型:System.OutOfMemoryException)

异常提示:内存溢出异常,请联系管理员处理

异常信息:Out of memory.

导致错误的应用程序或对象的名称:System.Drawing

引发当前异常的方法:Void CheckErrorStatus(Int32)

异常相关帮助:

堆栈信息:

   at System.Drawing.Graphics.CheckErrorStatus(Int32 status)

   at System.Drawing.Graphics.DrawImage(Image image, Int32 x, Int32 y)

at Genersoft.Platform.AppFramework.AddIns.FunctionTab.FunctionListViewForm.FunctionListViewForm_Paint(Object sender, PaintEventArgs e)

at System.Windows.Forms.Control.OnPaint(PaintEventArgs e)

at System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer)

at System.Windows.Forms.Control.WmPaint(Message& m)

at System.Windows.Forms.Control.WndProc(Message& m)

at System.Windows.Forms.ScrollableControl.WndProc(Message& m)

at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)

at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)

at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

内部异常:{}

 

 

异常信息(异常类型:System.ComponentModel.Win32Exception)
异常提示:存储空间不足,无法处理此命令。
异常信息:存储空间不足,无法处理此命令。
导致错误的应用程序或对象的名称:DevExpress.Utils.v10.2
引发当前异常的方法:IntPtr CreateCompatibleDIB(IntPtr, IntPtr, Int32, Int32, IntPtr ByRef)
异常相关帮助:
堆栈信息:
   在 DevExpress.Utils.Drawing.XtraBufferedGraphicsContext.CreateCompatibleDIB(IntPtr hdc, IntPtr hpal, Int32 ulWidth, Int32 ulHeight, IntPtr& ppvBits)
   在 DevExpress.Utils.Drawing.XtraBufferedGraphicsContext.CreateBuffer(IntPtr src, Int32 offsetX, Int32 offsetY, Int32 width, Int32 height)
   在 DevExpress.Utils.Drawing.XtraBufferedGraphicsContext.AllocBuffer(Graphics targetGraphics, IntPtr targetDC, Rectangle targetRectangle)
   在 DevExpress.Utils.Drawing.XtraBufferedGraphicsContext.AllocBufferInTempManager(Graphics targetGraphics, IntPtr targetDC, Rectangle targetRectangle)
   在 DevExpress.Utils.Drawing.XtraBufferedGraphicsContext.Allocate(Graphics targetGraphics, IntPtr targetDC, Rectangle targetRectangle)
   在 DevExpress.XtraTabbedMdi.XtraTabbedMdiManager.DrawNC(DXPaintEventArgs e)
   在 DevExpress.XtraTabbedMdi.XtraTabbedMdiManager.DrawNC()
   在 DevExpress.XtraTabbedMdi.XtraTabbedMdiManager.UpdateNCIfNeeded(Object sender, EventArgs e)
   在 System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry tme)
   在 System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj)
   在 System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   在 System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme)
   在 System.Windows.Forms.Control.InvokeMarshaledCallbacks()
内部异常:{}

 

文章的脚注信息由WordPress的wp-posturl插件自动生成



This entry was posted in ERP动态, 个人总结, 浪潮文档. Bookmark the permalink.

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>