MEF:从目录中删除程序集?

时间:2015-07-19 11:47:44

标签: iis asp.net-web-api2 mef

我已经使用IDependencyExplorer将MEF添加到我的web api项目中,一切正常。

但是,运行几分钟后,我开始出现导出未找到的错误。 当我在调试器中检查目录时,导出已经消失,并且包含导出类型的程序集不再存在。

我们没有从目录明确中删除程序集,所以我很困惑为什么会发生这种情况。有人能够对此有所了解吗?

1 个答案:

答案 0 :(得分:0)

刚刚弄清楚发生了什么。

我使用聚合目录并将包含导出的程序集添加到其中。

网站首次启动时,所有必需的程序集都已加载到当前应用程序域中,因此一切正常。

后来IIS进程正在回收/重启。当发生这种情况并收到新的Web请求时,并不是所有我需要的程序集都被加载了,而且我只是将一个防护装置添加到聚合目录中。

解决方案是强制加载程序集(如果尚未加载),或者改为使用目录编目。

希望这有助于其他遇到此问题的人。