我正在處理.net中間件結構,最近我在調試應用程序後大約20-30秒後突然出現以下異常。奇怪的例外
System.Reflection.AmbiguousMatchException was unhandled
Message: An unhandled exception of type 'System.Reflection.AmbiguousMatchException' occurred in mscorlib.dll
Additional information: Ambiguous match found.
奇怪的是我沒有改變一行代碼,我真的只是調試它。當我在發行模式下將其作爲服務安裝時,它可以正常工作。此外,它正在其他計算機上工作。 當我第一次遇到這種奇怪的行爲時,我重新安裝了電腦,突然間異常消失了。但是在調試模式下第二次啓動中間件之後,異常又回來了。就像一個筆記,我沒有改變DEBUG首選項中的任何東西。
以下是發生異常時的輸出日誌中的一些詳細信息。
System.Transactions的嚴重:0: http://msdn.microsoft.com/TraceCodes/System/ActivityTracing/2004/07/Reliability/Exception/Unhandled未處理 例外
mscorlib程序,版本= 4.0.0.0,文化=中性 公鑰= b77a5c561934e089Ambiguous 找到匹配。在 System.DefaultBinder.FindMostDerivedNewSlotMeth(MethodBase []匹配, 的Int32 cMatches)
hermeskim.Middleware.Service.vshost.exeSystem.Reflection.AmbiguousMatchException,
在System.RuntimeType.GetMethodImpl(字符串名稱,的BindingFlags bindingAttr,粘結劑粘結劑,CallingConventions callConv,類型[]類型,ParameterModifier []改性劑)
在System.Reflection.Emit.TypeBuilder.GetMethodImpl(字符串名稱,的BindingFlags bindingAttr,粘結劑粘結劑,CallingConventions callConvention,類型[]類型,ParameterModifier [] mo difiers)
在System.Type.GetMethod(字符串名稱) 在System.Activities.Debugger.State.GetMethodInfo(布爾withPriming) 在System.Activities.Debugger.StateManager.InvokeWorker(對象islandArguments,VirtualStackFrame的StackFrame) 在System.Activities.Debugger.ThreadWorkerController.Worker(布爾isAtStartup)
在System.Activities.Debugger.ThreadWorkerController.WorkerThreadProc() 在System.Threading.ExecutionContext.RunInternal(的ExecutionContext的ExecutionContext,ContextCallback回調,對象的狀態,布爾preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executedtio在System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback回調,對象狀態) System.Threading.ThreadHelper.ThreadStart()System.Reflection.AmbiguousMatchException:發現不明確的匹配。 在System.DefaultBinder.FindMostDerivedNewSlotMeth(MethodBase []匹配,的Int32 cMatches)
在System.RuntimeType.GetMethodImpl(字符串名稱,的BindingFlags bindingAttr,粘結劑粘結劑,CallingConventions callConv,類型[]類型,ParameterModifier []改性劑)
在System.Reflection.Emit.TypeBuilder.GetMethodImpl在系統(字符串名稱,的BindingFlags bindingAttr,粘結劑粘結劑,CallingConventions callConvention,類型[]類型,ParameterModifier []改性劑) 在System.Type.GetMethod(字符串名稱) 。Activities.Debugger.State.GetMethodInfo(布爾withPriming) 在System.Activities.Debugger.StateManager.InvokeWorker(對象islandArguments,VirtualStackFrame的StackFrame) 在System.Activities.Debugger.ThreadWorkerController.Worker(布爾isAtStartup)
在系統在System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback回調,對象狀態)上的活動.Debugger.ThreadWorkerController.WorkerThreadProc() 在System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext,ContextCallback回調,Object state,Boolean preserveSyncCtx) ,Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback callback,Ob JECT狀態)
在System.Threading.ThreadHelper.ThreadStart()
您可以添加您嘗試撥打的代碼嗎? – 2015-01-21 09:06:03
看起來您的參考資料不正確。也許你手動添加一些系統庫,或者你有一個奇怪的程序集清單? – Luaan 2015-01-21 09:06:04
不幸的是我不能添加任何代碼。在應用程序已經運行一段時間後,異常隨機啓動。我看不到它來自哪裏。調試器告訴我,如果我想查看更多詳細信息,我將不得不禁用「只是我的代碼」並加載符號。但即使我這樣做,我也沒有更多的信息。還有一點需要注意:異常發生在調試器線程本身中。 – Hannes 2015-01-21 09:09:21