无法在正在进行内容生成时调用 StartAt

本文记录了一位用户在创建销售订单时遇到的系统异常问题,表现为无法在内容生成过程中调用StartAt方法。通过排查用户数据,最终定位并解决了问题。

刚遇到一个奇怪的问题,用户点击创建销售订单的时候,弹出个 无法在正在进行内容生成时调用 StartAt,查看详细报错。

ystem.InvalidOperationException: 无法在正在进行内容生成时调用 StartAt。
   在 System.Windows.Controls.ItemContainerGenerator.System.Windows.Controls.Primitives.IItemContainerGenerator.StartAt(GeneratorPosition position, GeneratorDirection direction, Boolean allowStartAtRealizedItem)
   在 System.Windows.Controls.ItemContainerGenerator.System.Windows.Controls.Primitives.IItemContainerGenerator.StartAt(GeneratorPosition position, GeneratorDirection direction)
   在 System.Windows.Controls.Panel.AddChildren(GeneratorPosition pos, Int32 itemCount)
   在 System.Windows.Controls.Panel.OnItemsChangedInternal(Object sender, ItemsChangedEventArgs args)
   在 System.Windows.Controls.Panel.OnItemsChanged(Object sender, ItemsChangedEventArgs args)
   在 System.Windows.Controls.ItemContainerGenerator.OnItemAdded(Object item, Int32 index)
   在 System.Windows.Controls.ItemContainerGenerator.OnCollectionChanged(Object sender, NotifyCollectionChangedEventArgs args)
   在 System.Windows.WeakEventManager.ListenerList`1.DeliverEvent(Object sender, EventArgs e, Type managerType)
   在 System.Windows.WeakEventManager.DeliverEvent(Object sender, EventArgs args)
   在 System.Collections.Specialized.CollectionChangedEventManager.OnCollectionChanged(Object sender, NotifyCollectionChangedEventArgs args)
   在 System.Collections.Specialized.NotifyCollectionChangedEventHandler.Invoke(Object sender, NotifyCollectionChangedEventArgs e)
   在 System.Windows.Data.CollectionView.OnCollectionChanged(NotifyCollectionChangedEventArgs args)
   在 System.Windows.Controls.ItemCollection.OnViewCollectionChanged(Object sender, NotifyCollectionChangedEventArgs e)
   在 System.Windows.WeakEventManager.ListenerList`1.DeliverEvent(Object sender, EventArgs e, Type managerType)
   在 System.Windows.WeakEventManager.DeliverEvent(Object sender, EventArgs args)
   在 System.Collections.Specialized.CollectionChangedEventManager.OnCollectionChanged(Object sender, NotifyCollectionChangedEventArgs args)
   在 System.Windows.Data.CollectionView.OnCollectionChanged(NotifyCollectionChangedEventArgs args)
   在 MS.Internal.Controls.InnerItemCollectionView.Insert(Int32 index, Object item)
   在 System.Windows.Controls.ItemCollection.Insert(Int32 insertIndex, Object insertItem)
   在 Microsoft.Dynamics.Kernel.Client.UI.WPF.Controls.IndexTab.AddTab(String caption, Int32 index)
   在 CustomTabWrapperBase.AddTab(CustomTabWrapperBase* , Char* caption, Int32 index)
   在 CustomTabWrapperBase.OnItemClicked(CustomTabWrapperBase* , CustomTabItemClickedEventArgs e)
   在 Microsoft.Dynamics.Kernel.Client.CustomTabEventProxy.OnItemClicked(Object sender, CustomTabItemClickedEventArgs e)
   在 Microsoft.Dynamics.Kernel.Client.UI.WPF.Controls.IndexTab.tabControl_SelectionChanged(Object sender, SelectionChangedEventArgs e)
   在 System.Windows.Controls.SelectionChangedEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
   在 System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   在 System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   在 System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   在 System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   在 System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
   在 System.Windows.Controls.TabControl.OnSelectionChanged(SelectionChangedEventArgs e)
   在 System.Windows.Controls.Primitives.Selector.InvokeSelectionChanged(List`1 unselectedInfos, List`1 selectedInfos)
   在 System.Windows.Controls.Primitives.Selector.SelectionChanger.End()
   在 System.Windows.Controls.Primitives.Selector.SelectionChanger.SelectJustThisItem(ItemInfo info, Boolean assumeInItemsCollection)
   在 System.Windows.Controls.Primitives.Selector.OnSelectedIndexChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
   在 System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
   在 System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
   在 System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
   在 System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType)
   在 System.Windows.DependencyObject.SetValueCommon(DependencyProperty dp, Object value, PropertyMetadata metadata, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType, Boolean isInternal)
   在 System.Windows.DependencyObject.SetCurrentValueInternal(DependencyProperty dp, Object value)
   在 System.Windows.Controls.TabControl.OnGeneratorStatusChanged(Object sender, EventArgs e)
   在 System.EventHandler.Invoke(Object sender, EventArgs e)
   在 System.Windows.Controls.ItemContainerGenerator.SetStatus(GeneratorStatus value)
   在 System.Windows.Controls.ItemContainerGenerator.Generator.System.IDisposable.Dispose()
   在 System.Windows.Controls.Panel.AddChildren(GeneratorPosition pos, Int32 itemCount)
   在 System.Windows.Controls.Panel.OnItemsChangedInternal(Object sender, ItemsChangedEventArgs args)
   在 System.Windows.Controls.Panel.OnItemsChanged(Object sender, ItemsChangedEventArgs args)
   在 System.Windows.Controls.ItemContainerGenerator.OnItemAdded(Object item, Int32 index)
   在 System.Windows.Controls.ItemContainerGenerator.OnCollectionChanged(Object sender, NotifyCollectionChangedEventArgs args)
   在 System.Windows.WeakEventManager.ListenerList`1.DeliverEvent(Object sender, EventArgs e, Type managerType)
   在 System.Windows.WeakEventManager.DeliverEvent(Object sender, EventArgs args)
   在 System.Collections.Specialized.CollectionChangedEventManager.OnCollectionChanged(Object sender, NotifyCollectionChangedEventArgs args)
   在 System.Collections.Specialized.NotifyCollectionChangedEventHandler.Invoke(Object sender, NotifyCollectionChangedEventArgs e)
   在 System.Windows.Data.CollectionView.OnCollectionChanged(NotifyCollectionChangedEventArgs args)
   在 System.Windows.Controls.ItemCollection.OnViewCollectionChanged(Object sender, NotifyCollectionChangedEventArgs e)
   在 System.Windows.WeakEventManager.ListenerList`1.DeliverEvent(Object sender, EventArgs e, Type managerType)
   在 System.Windows.WeakEventManager.DeliverEvent(Object sender, EventArgs args)
   在 System.Collections.Specialized.CollectionChangedEventManager.OnCollectionChanged(Object sender, NotifyCollectionChangedEventArgs args)
   在 System.Windows.Data.CollectionView.OnCollectionChanged(NotifyCollectionChangedEventArgs args)
   在 MS.Internal.Controls.InnerItemCollectionView.Insert(Int32 index, Object item)
   在 System.Windows.Controls.ItemCollection.Insert(Int32 insertIndex, Object insertItem)
   在 Microsoft.Dynamics.Kernel.Client.UI.WPF.Controls.IndexTab.AddTab(String caption, Int32 index)
   在 CustomTabWrapperBase.AddTab(CustomTabWrapperBase* , Char* caption, Int32 index)
   在 Microsoft.Dynamics.Kernel.Client.ActionPaneInterop.ClickEventHelper.Clicked(Object sender, EventArgs __unnamed001)
   在 Microsoft.Dynamics.Framework.UI.WinForms.Controls.ActionItem.OnButtonClick()
   在 Microsoft.Dynamics.Framework.UI.WinForms.Controls.ActionButton.OnMouseUp(MouseEventArgs e)
   在 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   在 System.Windows.Forms.Control.WndProc(Message& m)
   在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

看不出啥线索。

其他用户没有这个问题,该用户在其他电脑上登录存在这个问题,那就是这个用户的问题了,AX里跟用户有关系的,也就选项里的用户数据了,找到跟这个窗体相关的用户数据,清掉,OK了。
应该是系统保存用户数据的时候除了啥问题。

转载于:https://www.cnblogs.com/Farseer1215/p/6693818.html

<think>好的,用户想了解在调用AI完成后如何处理'DONE'状态。首先,我需要明确'DONE'状态通常出现在异步任务或长间运行的操作中,表示任务已经完成。根据提供的引用,特别是引用[3]提到了API密钥、URL正确性和错误处理,但未直接提及'DONE'状态。不过,可以结合常见的API设计模式来分析。 首先,用户可能需要确认任务状态,比如通过轮询或回调。当任务完成,系统返回'DONE'状态,此应进行结果获取和资源释放。引用[3]中提到的错误处理在这里也很重要,比如处理网络问题或API限制。此外,引用[2]中的状态转移方程可能与此相关,但需要更多信息。接下来需要指导用户如何具体处理:检查状态码,获取结果,处理异常,更新系统状态,并可能记录日志。最后生成相关问题,覆盖状态监控、错误处理、性能优化等方面。</think>在调用AI服务处理“DONE”状态通常涉及异步任务监控和结果处理,以下是具体步骤: ### 1. **状态监控与轮询机制** 当AI任务启动后,可通过API定期查询任务状态。例如使用HTTP GET请求检查状态字段是否为`DONE`: ```python import time while True: status = get_task_status(task_id) # 调用状态查询接口 if status == "DONE": break time.sleep(5) # 间隔5秒轮询 ``` ### 2. **结果解析与错误处理** 当状态变为`DONE`,需立即获取任务结果并验证数据完整性: ```python if status == "DONE": result = get_task_result(task_id) if result.error_code != 0: # 检查API返回的错误码 handle_error(result.error_message) else: process_data(result.content) ``` 注意需捕获网络异常(如超、连接中断),可通过`try-except`块实现[^3]。 ### 3. **资源释放与状态更新** 完成结果处理后,应释放相关资源(如临存储空间),并将系统状态标记为“已完成”: ```sql UPDATE tasks SET status = 'COMPLETED' WHERE task_id = 'xxx'; ``` ### 4. **日志记录与性能分析** 记录`DONE`状态出现的间点和上下文信息,用于后续优化: ```python log_entry = f"DONE at {timestamp}, latency: {end_time - start_time}s" write_to_performance_log(log_entry) ``` 这有助于分析AI服务的响应效率,结合引用[1]提到的AI性能预测方法,可进一步优化调用间隔[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值