MEF:组件从目录中删除?
MEF: Assemblies getting removed from catalog?
我已使用 IDependencyExplorer 将 MEF 添加到我的 Web api 项目中,一切正常。
但是,运行 几分钟后,我开始收到导出未找到错误。
当我检查调试器中的目录时,导出已经消失,包含导出类型的程序集不再存在。
我们并没有明确地从目录中删除程序集,所以我很困惑为什么会这样。任何人都可以阐明这一点吗?
刚弄清楚发生了什么。
我使用聚合目录并将包含我的导出的程序集添加到其中。
网站第一次启动时,所有必需的程序集都加载到当前应用程序域中,所以一切正常。
后来的 IIS 进程是 recycling/restarting。当发生这种情况并收到新的 Web 请求时,并没有加载我需要的所有程序集,我已经设置了一个保护措施,只将加载的程序集添加到聚合目录中。
解决方案是在程序集尚未加载时强制加载它们,或者改用目录编目。
希望这对遇到此问题的其他人有所帮助。
我已使用 IDependencyExplorer 将 MEF 添加到我的 Web api 项目中,一切正常。
但是,运行 几分钟后,我开始收到导出未找到错误。 当我检查调试器中的目录时,导出已经消失,包含导出类型的程序集不再存在。
我们并没有明确地从目录中删除程序集,所以我很困惑为什么会这样。任何人都可以阐明这一点吗?
刚弄清楚发生了什么。
我使用聚合目录并将包含我的导出的程序集添加到其中。
网站第一次启动时,所有必需的程序集都加载到当前应用程序域中,所以一切正常。
后来的 IIS 进程是 recycling/restarting。当发生这种情况并收到新的 Web 请求时,并没有加载我需要的所有程序集,我已经设置了一个保护措施,只将加载的程序集添加到聚合目录中。
解决方案是在程序集尚未加载时强制加载它们,或者改用目录编目。
希望这对遇到此问题的其他人有所帮助。