2015-07-19 46 views
0

我已經使用IDependencyExplorer將MEF添加到了我的web api項目中,並且所有工作都正常。MEF:組件從目錄中刪除?

但是,運行幾分鐘後,我開始得到導出未找到的錯誤。 當我在調試器中檢查目錄時,導出已經消失,並且包含導出類型的程序集不再存在。

我們沒有從目錄中刪除程序集,所以我很困惑爲什麼會發生這種情況。任何人都可以對此有所瞭解嗎?

回答

0

剛剛弄清楚發生了什麼事。

我使用聚合目錄並將包含我的導出的程序集添加到其中。

網站首次啓動時,所有必需的程序集都加載到當前的應用程序域中,所以一切正常。

後來IIS進程被回收/重新啓動。當發生這種情況並收到新的Web請求時,並非我需要的所有程序集都已加載,並且我已經設置了一個警戒來僅將加載的程序集添加到聚合目錄中。

解決方案是強制加載程序集,如果它們尚未加載,或者改爲使用目錄目錄。

希望這可以幫助任何遇到此問題的人。