.net 4.0 创建具有全局上下文的 MemoryMappedFile 会引发异常
Posted
技术标签:
【中文标题】.net 4.0 创建具有全局上下文的 MemoryMappedFile 会引发异常【英文标题】:.net 4.0 creating a MemoryMappedFile with global context throws exception 【发布时间】:2010-05-05 11:54:01 【问题描述】:我想使用以下调用在 C# 4.0 中创建一个全局 MemoryMappedFile:
string MemoryMappedFileName = "Global\\20E9C857-C944-4C35-B937-A5941034D073";
ioBuffer = MemoryMappedFile.CreateNew(MemoryMappedFileName, totalIoBufferSize);
这总是会引发以下异常“System.UnauthorizedAccessException:对路径的访问被拒绝。” 如果我从内存映射文件名中删除“全局\”标识符,它可以工作,但我需要一个跨终端会话的内存映射文件。
ps:如果我以管理员身份运行,它可以工作......
谢谢, 克里斯托夫
【问题讨论】:
我想你已经找到了答案。特权。 好吧,问题是我还想编写自动化集成测试。如果它们在正常权限下运行,它们就会失败。这就是为什么我想知道是否可以在正常权限下创建全局共享内存。 【参考方案1】:检查“创建全局对象”的本地安全策略。授予特定的受信任用户帐户权限。请注意安全问题,因此不要将其授予群组。
【讨论】:
以上是关于.net 4.0 创建具有全局上下文的 MemoryMappedFile 会引发异常的主要内容,如果未能解决你的问题,请参考以下文章
.NET 4.5 应用程序在具有 .NET 4.0 的系统上的特定功能兼容性
无法加载具有不变名称“System.Data.SqlServerCe.4.0”的 ADO.NET 提供程序
具有不变名称“System.Data.SqlServerCe.4.0”的 ADO.NET 提供程序未注册