0
我在創建DirectoryCatalog時掛起的MEF遇到問題。我有一個測試MEF功能的Windows窗體應用程序,它可以毫無問題地工作。但是,當我在Windows服務中運行相同的代碼時,它掛起在線:C#MEF在創建DirectoryCatalog時掛起
_catalog = new DirectoryCatalog(assemblyBaseDirectory);
//Here is the full code block.
var codeBaseDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase);
if (codeBaseDir != null) {
assemblyBaseDirectory = new Uri(codeBaseDir).AbsolutePath;
Logger.Info("Creating Directory Catalog for " + assemblyBaseDirectory);
_catalog = new DirectoryCatalog(assemblyBaseDirectory);
Logger.Info("Directory Catalog created!");
}
我也沒有得到例外。我把登錄並發現第二個Logger.Info行永遠不會被調用。
UPDATE:
我確定我的路徑未返回相同的時候我叫從我服務的代碼。它將目錄路徑格式化爲「C:/ Program%20Files/My%20Service」。我不確定爲什麼它沒有爲我的贏的形式應用程序做這個。
服務在本地系統帳戶下運行。我使用您提供的代碼檢查了路徑,它返回的路徑與我從代碼中獲得的路徑相同。這是我安裝我的服務的路徑。有什麼想法嗎?謝謝。 –
在查看本網站中有關MEF和目錄權限的其他人的問題之後,看起來他們在出現安全問題時會收到異常。 –