У меня проблема с моей средой разработки, когда любые вызовы CacheFactory блока приложения кэширования приводят к сбою IIS. Я создал очень простое веб-приложение, которое вызывает сбой IIS при каждой попытке его запуска, но приложение прекрасно работает на веб-сервере Visual Studio.NET.
Следующий код вызывает сбой приложения при работе под IIS:
protected void Page_Load(object sender, EventArgs e)
{
try
{
ICacheManager cm = CacheFactory.GetCacheManager("foo");
Response.Write(cm.GetHashCode());
}
catch(Exception ex)
{
Response.Write(Server.HtmlEncode(ex.ToString()));
}
}
Я как бы цепляюсь за соломинку, но кто-нибудь видел подобное поведение? Некоторое время я видел «Попытка чтения или записи защищенной памяти. Это часто указывает на то, что другая память повреждена». ошибки, но сейчас я просто получаю сбои. В приведенном выше примере кода, когда я запускаю под IIS, перехват не достигается, потому что процесс w3wp.exe просто терпит неудачу. Когда это происходит, я получаю следующую запись в журнале событий:
Процесс, обслуживающий пул приложений
WebApplication1 потерпел смертельный исход
ошибка связи с виндой
Служба активации процессов.
Идентификатор процесса был «1944». Поле данных
содержит номер ошибки.
Я уже пытался переустановить Enterprise Library и перезапустить aspnet_regiis.exe безрезультатно. Я также пытался удалить роль веб-сервера и переустановить ее, но это тоже не сработало.
Некоторые заметки о моей среде разработки:
- Запуск VS.NET 2010 SP1 Beta на Windows Server 2008 R2 x 64 Web Edition в VirtualBox 4.0.4
- Использование Enterprise Library 5.0
- До недавнего времени все на этом сервере разработки работало нормально.
- На этом этапе предотвращение выполнения данных было отключено с помощью bcdedit.exe
EDIT
Я сузил эту проблему до проблемы .NET 4.0 Framework. Когда я создаю свое веб-приложение на платформе 3.5 Framework, оно работает как положено, но когда я делаю сборку на 4.0 Framework, происходит сбой IIS при запуске веб-приложения.