Назад | Перейти на главную страницу

500 Внутренняя ошибка сервера после изменения версии .NET Framework на 4.0 в IIS7

Я только что изменил свою версию пулов приложений .NET Framework в диспетчере IIS7, следуя Укажите версию .NET Framework для пула приложений (IIS 7) инструкции Microsoft Technet. Теперь, когда я пытаюсь повторно загрузить свою страницу ASP.NET, она показывает мне ошибку 500 - Internal server. Я попытался загрузить его в .NET 2.0 (x86, x64, AnyCPU) и 4.0 (x86, x64, AnyCPU), и все выдает ту же ошибку. Это все подробности, которые дает мне ошибка: «Возникла проблема с ресурсом, который вы ищете, и он не может быть отображен».

При хранении .NET версии 2.0 на сервере все работает нормально. Также при загрузке index.htm, он тоже отлично работает, он просто показывает HTML-страницу.

Кстати, это на Windows Server 2008 R2.

РЕДАКТИРОВАТЬ:

Наконец-то я узнал, как получить подробную информацию об ошибке. Они здесь:
Обработчик "PageHandlerFactory-Integrated" имеет плохой модуль "ManagedPipelineHandler" в своем списке модулей. Наиболее вероятные причины:

Я уверен, что полностью установил ASP.NET.

Я нашел решение. Судя по всему, он не зарегистрировал мою установку .NET 4.0. Мне просто пришлось запустить эту программу с параметрами: "C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i", и это исправило!

Обратите внимание, что путь "C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe" может отличаться в зависимости от установленной версии .NET framework!
Чтобы узнать, какой путь вам нужен, откройте "C:\Windows\Microsoft.NET\Framework\", и посмотрите, как называется имя папки, и измените его соответствующим образом, например: "C:\Windows\Microsoft.NET\Framework\<version>\aspnet_regiis.exe"

Для конкретных версий vs существуют специальные командные консоли. Таким образом, он позволяет избежать этой головной боли, связанной с длинными путями, поскольку они уже установлены в командной консоли vs. Перейдите в каталог программы VS и найдите командную консоль, и когда она откроется, просто введите

aspnet_regiis.exe -i

Вы должны убедиться, что каждое приложение в любом заданном пуле приложений нацелено на одну и ту же версию .NET framework. Если у вас смешанные версии, вам необходимо создать несколько пулов приложений.

В приложении не было указано, с какой версией фреймворка работать. Очевидно (в данном случае) он хочет работать как фреймворк 2.0. Я бы создал другой пул приложений и изолировал это приложение в этом пуле приложений. вы можете назначить версию платформы для совместимого пула приложений (в данном случае 2.0)