GeneXus 17知识库在GeneXus 18打开时触发ObjectDisposedException异常求助
GeneXus 18打开GeneXus 17知识库时触发“ObjectSelectorControl已释放”异常
问题场景
所有在GeneXus 17中关闭的知识库,在GeneXus 18(版本18.0.167910 U1)中打开时都会报错,提示无需版本更新。失败:基于主题保留知识库样式,同时抛出对象已释放的异常,具体日志如下:
时间戳: 13/02/2023 14:09:47 消息: HandlingInstanceID: 24c7ba00-4ede-4a8d-b273-6b13d512b349 捕获到类型为'Artech.Common.Diagnostics.GxException'的异常。 ------------------------------------------------------------------------------------- 2023年2月13日 14:09:47 类型 : Artech.Common.Diagnostics.GxException, Artech.Common, Version=11.0.0.0, Culture=neutral, PublicKeyToken=6f5bf81c27b6b8aa 消息 : 无法访问已释放的对象。 对象名称: 'ObjectSelectorControl'。 来源 : 帮助链接 : 异常数据 产品 : GeneXus 18 版本 : 18.0.167910 U1 Exception.Severity : 错误 目标站点 : HResult : -2146232832 堆栈跟踪 : 无法获取堆栈跟踪。 附加信息: 机器名 : MACHINNENAME 时间戳 : 13/02/2023 17:09:47 全名 : Microsoft.Practices.EnterpriseLibrary.ExceptionHandling, Version=3.1.0.0, Culture=neutral, PublicKeyToken=79a65ef946496ecc 应用程序域名称 : GeneXus.exe 线程标识 : MACHINNENAME\WINDOWSUSER Windows标识 : MACHINNENAME\WINDOWSUSER 内部异常 --------------- 类型 : System.ObjectDisposedException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 消息 : 无法访问已释放的对象。 对象名称: 'ObjectSelectorControl'。 来源 : System.Windows.Forms 帮助链接 : 对象名称 : ObjectSelectorControl 目标站点 : Void CreateHandle() HResult : -2146232798 堆栈跟踪 : 在 System.Windows.Forms.Control.CreateHandle() 在 System.Windows.Forms.Control.get_Handle() 在 Artech.Core.UI.ToolWindows.ObjectSelectorControl.StopPainting() 在 Artech.Core.UI.ToolWindows.ObjectSelectorControl.OnUpdateDataSource(List`1 items) 在 Artech.Core.UI.ToolWindows.ObjectSelectorControl.set_Objects(List`1 value) 在 Artech.Core.UI.ToolWindows.WorkWithObjectsEditor.Artech.Core.UI.ToolWindows.IObjectBrowser.UpdateControl(ObjectBrowserHelperResult result) 在 Artech.Core.UI.ToolWindows.ObjectBrowserHelper.WorkerRunWorkerCompleted(Object sender, RunWorkerCompletedEventArgs e) 在 System.ComponentModel.RunWorkerCompletedEventHandler.Invoke(Object sender, RunWorkerCompletedEventArgs e) 在 System.ComponentModel.BackgroundWorker.OnRunWorkerCompleted(RunWorkerCompletedEventArgs e) 在 System.ComponentModel.BackgroundWorker.AsyncOperationCompleted(Object arg) 类别: 默认类别 优先级: 0 事件ID: 100 严重程度: 错误 标题:Genexus 应用程序异常 机器: MACHINNENAME 应用程序域: GeneXus.exe 进程ID: 6420 进程名称: C:\Program Files (x86)\GeneXus\GeneXus18\GeneXus.exe Win32线程ID: 3696 线程名称: 扩展属性: AdvancedInformation.Product - GeneXus 18 AdvancedInformation.Version - 18.0.167910 U1 Exception.Severity - 错误
解决方案尝试
针对这个UI控件释放异常,可按以下步骤排查修复:
- 清理GeneXus缓存:删除
C:\Users\<你的用户名>\AppData\Roaming\GeneXus\18下的缓存文件,尤其是知识库相关临时数据 - 修复知识库:打开GeneXus 18,通过菜单栏「知识库>修复知识库」工具对目标知识库进行修复
- 重置UI布局:进入「工具>选项>用户界面」,选择重置布局为默认,避免UI控件加载异常
- 更新GeneXus版本:检查并安装GeneXus 18的最新更新补丁,后续版本可能修复该控件的资源释放问题
- 重建UI配置:导出知识库的UI配置文件,删除后重新导入,重置对象选择器相关设置
内容的提问来源于stack exchange,提问作者Genexudo
相关产品推荐
相关产品推荐

