我们的产品使用mono 4.8.0。在不同类型的Linux上运行特定测试时,偶尔会触发未处理的异常。更具体地说,触发了AppDomain.UnhandledException事件。但我们无法弄清楚代码的哪一行触发了异常。我想知道这是单声道的缺陷吗?
[ERROR]致命的未处理的异常:System.ExecutionEngineException:ExecutionContext_ExceptionInAsyncLocalNotification ---> System.Threading.ThreadAbortException 在System.Collections.Generic.ObjectEqualityComparer' 1 [T] .Equals(T x,T y)< 0x7f0f20aa1e80 + 0x00000> in:0 在System.Collections.Generic.Dictionary' 2 [TKey,TValue]。.FindEntry(TKey key)[0x0005d] in:0 在System.Collections.Generic.Dictionary' 2 [TKey,TValue] .TryGetValue(TKey key,TValue& value)[0x00000] in:0 在System.Threading.ExecutionContext.OnAsyncLocalContextChanged(System.Threading.ExecutionContext previous,System.Threading.ExecutionContext current)[0x00119] in ..... / mono / mono / mcs / class / referencesource / mscorlib / system / threading / executioncontext的.cs:749 ---内部异常堆栈跟踪结束--- 在System.Environment.FailFast(System.String消息,System.Exception异常)[0x00000]在..... / mono / mono / mcs / class / corlib / System / Environment.cs:929 在... / mono / mono / mcs / class / referencesource / mscorlib / system / threading / executioncontext中的System.Threading.ExecutionContext.OnAsyncLocalContextChanged(System.Threading.ExecutionContext previous,System.Threading.ExecutionContext current)[0x00164]。 CS:758 在System.Threading.ExecutionContext.SetExecutionContext(System.Threading.ExecutionContext executionContext,System.Boolean preserveSyncCtx)[0x0005f] in .... / mono / mono / mcs / class / referencesource / mscorlib / system / threading / executioncontext.cs: 1028
由于
答案 0 :(得分:0)
尝试<AppContextSwitchOverrides value="Switch.System.Globalization.NoAsyncCurrentCulture=true" />
并避免使用AsyncLocal<T>