COM服务器中AppDomain.AssemblyResolve事件未触发问题咨询
AppDomain.AssemblyResolve在COM启动时未触发的问题排查与临时处理
我之前也碰到过一模一样的问题,跟你分享下我的梳理和当前的处理方式:
- 现象对比:直接启动应用时,
AppDomain.AssemblyResolve的事件处理程序能正常触发执行;但通过COM调用启动应用时,这个事件完全没反应。 - 文档参考:查官方文档得知,如果注册了多个
AppDomain.AssemblyResolve的处理程序,它们会按注册顺序依次被调用,直到其中一个返回非空的Assembly实例就停止后续调用。 - 疑点分析:因为没法控制COM客户端的代码逻辑,确实没法确定是不是客户端那边也注册了这个事件的处理程序,而且它的处理程序先被执行并返回了结果,导致咱们的处理程序根本没机会跑起来。
- 临时解决:我目前是直接移除了相关的程序集引用,先让功能正常跑起来再说,但根因还没彻底搞清楚——如果要深挖的话,可能得用调试工具追踪COM启动过程中AppDomain的事件注册链才行。
内容的提问来源于stack exchange,提问作者stenio
相关产品推荐
相关产品推荐

