Xamarin MemoryMappedFile System.UnauthorizedAccessException

时间:2017-06-12 12:08:43

标签: c# xamarin.forms memory-mapped-files

我想将Xamarin用作Crossplattform UWP和MacOs应用程序。我有一个现有的后端服务。

我需要的一个主要功能是memorymappedfile! (用于进程间通信)

所以我尝试在Xamarin Projekt中创建一个 - 但.net服务无法找到memorymappedfile。

之后我尝试在.net服务中创建MemorymappedFile:

var CustomSecurity = new MemoryMappedFileSecurity();
CustomSecurity.AddAccessRule(new System.Security.AccessControl.AccessRule<MemoryMappedFileRights>("Everyone", MemoryMappedFileRights.FullControl, System.Security.AccessControl.AccessControlType.Allow));

using (var memoryMappedFile = MemoryMappedFile.CreateNew("test", 102400,MemoryMappedFileAccess.ReadWriteExecute,MemoryMappedFileOptions.None, CustomSecurity,System.IO.HandleInheritability.None))
     {
      var accessor = memoryMappedFile.CreateViewAccessor();
      accessor.Write(0, 42);}

现在Xamarin可以找到MemoryMappedFile,但是当我遇到UnauthorizedAccessException:

var memoryMappedFile = MemoryMappedFile.OpenExisting("test");
var accessor = memoryMappedFile3.CreateViewAccessor();

但是另一个没有Xamarin.Forms项目(wpf projekt)可以使用相同的代码访问这个memorymapped文件!

我希望有人可以帮助我或告诉我如何将MemoryMappedFile与Xamarin一起使用。

我的Xamarin App使用带有.net Standard 1.4的Xamarin.Forms并安装了NuggetPackage:System.IO.MemoryMappedFile以获取对MemoryMappedFile基础的访问(没有MemoryMappedFileSecurity())

非常感谢。

0 个答案:

没有答案