Открытие файла сопоставления памяти вызывает исключение FileNotFoundException при развертывании в IIS
Следуя примеру кода изэтот На веб-сайте я создал консольное приложение Windows, которое создает сопоставленный файл памяти:
using (var file = MemoryMappedFile.CreateNew("myFile", 24))
{
var bytes = new byte[24];
for (var i = 0; i < bytes.Length; i++)
bytes[i] = (byte)(65 + i);
using (var writer = file.CreateViewAccessor(0, bytes.Length))
{
writer.WriteArray(0, bytes, 0, bytes.Length);
}
Console.WriteLine("Run memory mapped file reader before exit");
Console.WriteLine("Press any key to exit ...");
Console.ReadLine();
}
в новом веб-приложении asp.net я прочитал MMF с помощью кода:
protected void Page_Load(object sender, EventArgs e)
{
string sOutput = "";
using (var file = MemoryMappedFile.OpenExisting("myFile"))
{
using (var reader = file.CreateViewAccessor(0, 24))
{
var bytes = new byte[24];
reader.ReadArray(0, bytes, 0, bytes.Length);
for (var i = 0; i < bytes.Length; i++)
sOutput += (char)bytes[i] + " ";
}
}
Response.Write(sOutput);
}
В разработке IIS Express файл читается, как и ожидалось, и на странице отображаются данные из сопоставленного файла памяти.
Однако при развертывании в IIS я получаю исключениеSystem.IO.FileNotFoundException
на местеMemoryMappedFile.OpenExisting("myFile")
Я попытался изменить удостоверение пула приложений на то же, что и приложение консоли MMF, но это не помогло.т работа.