Я понимаю, что .NET 4.0 находится в бета-версии, но я надеюсь, что у кого-то есть разрешение на это. Я пытаюсь создать в памяти, в файл из библиотеки DLL:MemoryMappedFile.CreateFromFile всегда выбрасывает UnauthorizedAccessException
FileStream file = File.OpenRead("C:\mydll.dll");
using (MemoryMappedFile mappedFile = MemoryMappedFile.CreateFromFile(file,
"PEIMAGE", 1024 * 1024, MemoryMappedFileAccess.ReadExecute))
{
using (MemoryMappedViewStream viewStream = mappedFile.CreateViewStream())
{
// read from the view stream
}
}
К сожалению, независимо от того, что я делаю, я всегда получаю UnauthorizedAccessException
, для которых MSDN documentation состояния:
Операционная система отклонил указанный доступ к файлу; например, для доступа задано значение Write или ReadWrite, но файл или каталог доступны только для чтения.
Я отслеживаю свое приложение с помощью Sysinternals Process Monitor, который показывает, что файл действительно успешно открывается. Я также попробовал сопоставление памяти с другими файлами, отличными от DLL, но с тем же результатом.
Это похоже на дубликат: http://stackoverflow.com/questions/1220913/unauthorizedaccessexception-on-memorymappedfile-in-c-4 – bobbymcr