Je réalise que .NET 4.0 est en version bêta, mais j'espère que quelqu'un aura une solution pour cela. Je suis en train de créer une mémoire fichier mis en correspondance à partir d'une DLL:MemoryMappedFile.CreateFromFile lance toujours 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
}
}
Malheureusement, peu importe ce que je fais, je reçois toujours un UnauthorizedAccessException
, dont les MSDN documentation états:
Le système d'exploitation refusé l'accès spécifié au fichier; Par exemple, l'accès est défini sur Write ou ReadWrite, mais le fichier ou le répertoire est en lecture seule.
J'ai surveillé mon application avec Sysinternals Process Monitor, qui montre que le fichier est effectivement ouvert avec succès. J'ai également essayé le mappage de la mémoire d'autres fichiers non-DLL, mais avec le même résultat.
Cela semble être un doublon: http://stackoverflow.com/questions/1220913/unauthorizedaccessexception-on-memorymappedfile-in-c-4 – bobbymcr