2010-05-05 80 views
1

我想創建在C#4.0中的全球MemoryMappedFile使用以下調用:.NET 4.0創建MemoryMappedFile與全球範圍內引發異常

string MemoryMappedFileName = "Global\\20E9C857-C944-4C35-B937-A5941034D073"; 
ioBuffer = MemoryMappedFile.CreateNew(MemoryMappedFileName, totalIoBufferSize); 

這總是會引發以下異常「System.UnauthorizedAccessException:對路徑拒絕「。 如果我從存儲器映射的文件名中刪除了「Global \」標識符,它可以工作,但我需要一個存在於終端會話中的存儲器映射文件。

PS:如果我作爲管理員身份運行它的工作原理...

感謝, 克里斯托夫

+1

我想你已經找到了你的答案。特權。 – kenny 2010-05-05 12:12:38

+1

那麼,問題是我也想編寫自動化集成測試。如果它們在正常權限下運行,則會失敗。這就是爲什麼我想知道它是否有可能在普通權限下創建全局共享內存。 – Christoph 2010-05-05 12:48:51

回答

0

檢查「創建全局對象」你的本地安全策略。爲特定的可信用戶帳戶授予特權。注意安全問題,所以不要將它授予一個組。