0
我已經使用IDependencyExplorer將MEF添加到了我的web api項目中,並且所有工作都正常。MEF:組件從目錄中刪除?
但是,運行幾分鐘後,我開始得到導出未找到的錯誤。 當我在調試器中檢查目錄時,導出已經消失,並且包含導出類型的程序集不再存在。
我們沒有從目錄中刪除程序集,所以我很困惑爲什麼會發生這種情況。任何人都可以對此有所瞭解嗎?
我已經使用IDependencyExplorer將MEF添加到了我的web api項目中,並且所有工作都正常。MEF:組件從目錄中刪除?
但是,運行幾分鐘後,我開始得到導出未找到的錯誤。 當我在調試器中檢查目錄時,導出已經消失,並且包含導出類型的程序集不再存在。
我們沒有從目錄中刪除程序集,所以我很困惑爲什麼會發生這種情況。任何人都可以對此有所瞭解嗎?
剛剛弄清楚發生了什麼事。
我使用聚合目錄並將包含我的導出的程序集添加到其中。
網站首次啓動時,所有必需的程序集都加載到當前的應用程序域中,所以一切正常。
後來IIS進程被回收/重新啓動。當發生這種情況並收到新的Web請求時,並非我需要的所有程序集都已加載,並且我已經設置了一個警戒來僅將加載的程序集添加到聚合目錄中。
解決方案是強制加載程序集,如果它們尚未加載,或者改爲使用目錄目錄。
希望這可以幫助任何遇到此問題的人。