奇怪的例外无处不在

时间:2015-01-21 09:01:53

标签: c# .net multithreading exception

我正在使用.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.

奇怪的是我没有改变一行代码,我真的只是调试它。当我在发布模式下将其作为服务安装时,它可以工作。此外,它正在其他计算机上工作。 当我第一次遇到这种奇怪的行为时,我重新安装了我的电脑,突然异常消失了。但是在调试模式下第二次启动Middle ware后,异常又回来了。 就像一张纸条,我没有改变DEBUG偏好中的任何内容。

以下是发生异常时输出日志的更多详细信息。

  

System.Transactions Critical: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,

at System.RuntimeType.GetMethodImpl(String name,BindingFlags bindingAttr,Binder binder,CallingConventions callConv,Type [] types,ParameterModifier [] modifiers)

at System.Reflection.Emit.TypeBuilder.GetMethodImpl(String name,BindingFlags bindingAttr,Binder binder,CallingConventions callConvention,Type [] types,ParameterModifier [] modifiers)

at System.Type.GetMethod(String name)    在System.Activities.Debugger.State.GetMethodInfo(Boolean withPriming)    在System.Activities.Debugger.StateManager.InvokeWorker(Object islandArguments,VirtualStackFrame stackFrame)    在System.Activities.Debugger.ThreadWorkerController.Worker(Boolean isAtStartup)

在System.Activities.Debugger.ThreadWorkerController.WorkerThreadProc()    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext,ContextCallback callback,Object state,Boolean preserveSyncCtx)    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback callback,Object state,Boolean preserveSyncCtx)    在System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback回调,对象状态)    在System.Threading.ThreadHelper.ThreadStart()System.Reflection.AmbiguousMatchException:找到了模糊匹配。    在System.DefaultBinder.FindMostDerivedNewSlotMeth(MethodBase []匹配,Int32 cMatches)

at System.RuntimeType.GetMethodImpl(String name,BindingFlags bindingAttr,Binder binder,CallingConventions callConv,Type [] types,ParameterModifier [] modifiers)

at System.Reflection.Emit.TypeBuilder.GetMethodImpl(String name,BindingFlags bindingAttr,Binder binder,CallingConventions callConvention,Type [] types,ParameterModifier [] modifiers)    at System.Type.GetMethod(String name)    在System.Activities.Debugger.State.GetMethodInfo(Boolean withPriming)    在System.Activities.Debugger.StateManager.InvokeWorker(Object islandArguments,VirtualStackFrame stackFrame)    在System.Activities.Debugger.ThreadWorkerController.Worker(Boolean isAtStartup)

在System.Activities.Debugger.ThreadWorkerController.WorkerThreadProc()    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext,ContextCallback callback,Object state,Boolean preserveSyncCtx)    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback callback,Object state,Boolean preserveSyncCtx)    在System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback回调,对象状态)

在System.Threading.ThreadHelper.ThreadStart()

1 个答案:

答案 0 :(得分:1)

问题出在配置文件中,我意外地开始了2次相同的工作流程。