Я обновил свою машину разработки до 64-битной Win7, и теперь, когда я пытаюсь подключиться к локальному проекту ASP.Net, я получаю:
Ошибка HTTP 500 ... Не удалось вызвать LoadLibraryEx в фильтре ISAPI "C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_filter.dll"
В этом есть несколько загадок; проект ASP.Net был .Net 2.0 ASMX, поэтому он использовал C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727. Если он обновился до x64, не спрашивая меня, не следует ли использовать C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \? Откуда взялся C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \?
Я открыл диспетчер IIS и выбрал версию .Net Framework для моей машины 2.0.50727. Версия платформы для моего пула приложений по умолчанию такая же.
Я разрабатываю VS2008, в котором даже нет возможности нацеливать .Net 4.0.
Мне кажется, что у вас есть 32-битная часть вашего приложения, и вы пытаетесь запустить ее в 64-битном пуле приложений в IIS. По умолчанию пул приложений 64-битный в 64-битной ОС. Чтобы включить 32-битный режим, вам необходимо перейти к дополнительным свойствам пула приложений и изменить настройку «Включить 32-битные приложения».
Несмотря на то, что .Net 2.0 Framework была установлена на моем компьютере и выбрана в диспетчере IIS, ASPNET_REGIIS
сказал, что не зарегистрирован:
cd C:\Windows\Microsoft.NET\Framework\v2.0.50727
aspnet_regiis -lv
4.0.30319.0 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll
4.0.30319.0 C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll
Как это возможно, я не знаю. Повторная регистрация ASP.NET 2 устранила проблему:
aspnet_regiis -i
Finished installing ASP.NET (2.0.50727)
aspnet_regiis -lv
2.0.50727.0 C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll
4.0.30319.0 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll
2.0.50727.0 C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
4.0.30319.0 C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll
Это не имело ничего общего с обновлением до Win 7; это была охота на диких гусей.