我正在使用.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()
答案 0 :(得分:1)
问题出在配置文件中,我意外地开始了2次相同的工作流程。