【发布时间】:2015-07-19 11:47:44
【问题描述】:
我已经使用 IDependencyExplorer 将 MEF 添加到我的 web api 项目中,并且一切正常。
但是,运行几分钟后,我开始出现未找到导出错误。 当我在调试器中检查目录时,导出已经消失,包含导出类型的程序集不再存在。
我们并没有明确地从目录中删除程序集,所以我对为什么会发生这种情况感到困惑。有人能对此有所了解吗?
【问题讨论】:
标签: iis asp.net-web-api2 mef
我已经使用 IDependencyExplorer 将 MEF 添加到我的 web api 项目中,并且一切正常。
但是,运行几分钟后,我开始出现未找到导出错误。 当我在调试器中检查目录时,导出已经消失,包含导出类型的程序集不再存在。
我们并没有明确地从目录中删除程序集,所以我对为什么会发生这种情况感到困惑。有人能对此有所了解吗?
【问题讨论】:
标签: iis asp.net-web-api2 mef
刚刚弄清楚发生了什么。
我使用聚合目录并将包含我的导出的程序集添加到其中。
网站第一次启动时,所有需要的程序集都加载到当前应用程序域中,所以一切正常。
后来 IIS 进程正在回收/重新启动。当发生这种情况并收到新的 Web 请求时,并没有加载我需要的所有程序集,并且我设置了一个保护措施,只将加载的程序集添加到聚合目录中。
解决方案是,如果尚未加载程序集,则强制加载它们,或者改用目录目录。
希望这对遇到此问题的其他人有所帮助。
【讨论】: