我已经使用IDependencyExplorer将MEF添加到我的web api项目中,一切正常。
但是,运行几分钟后,我开始出现导出未找到的错误。 当我在调试器中检查目录时,导出已经消失,并且包含导出类型的程序集不再存在。
我们没有从目录明确中删除程序集,所以我很困惑为什么会发生这种情况。有人能够对此有所了解吗?
答案 0 :(得分:0)
刚刚弄清楚发生了什么。
我使用聚合目录并将包含导出的程序集添加到其中。
网站首次启动时,所有必需的程序集都已加载到当前应用程序域中,因此一切正常。
后来IIS进程正在回收/重启。当发生这种情况并收到新的Web请求时,并不是所有我需要的程序集都被加载了,而且我只是将一个防护装置添加到聚合目录中。
解决方案是强制加载程序集(如果尚未加载),或者改为使用目录编目。
希望这有助于其他遇到此问题的人。