Есть ли надежный способ проверить, был ли ASP.NET 4.0 зарегистрирован на IIS 7.5 программным путем? Мне нужно проверить его в установщике как обязательное условие, прежде чем начнется установка приложения ASP.NET.
Если ASP.NET 4.0, не зарегистрированный в IIS, позже во время установки только что установленное приложение не может быть запущено и возвращает 500 внутренних ошибок сервера (и это слишком поздно, чтобы решить проблему). Вместо этого я хочу показать предупреждение (и подсказку, как решить проблему) до того, как начнутся какие-либо шаги установки. Но надежного решения пока не найдено.
AFAIK, чтение записей в реестре иногда может работать неправильно. Итак, теперь я запускаю aspnet_regiis.exe -lv
, чтобы перечислить версии (как предложено здесь) и проанализировать вывод. Но даже если .NET не зарегистрирован правильно, мой тест (ложно) преуспевает, потому что вывод (содержит версию 4.0):
2.0.50727.0 C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll
4.0.30319.0 C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll
(Win7 32bit)
Запуск aspnet_regiis.exe -ir
может в этом случае восстановить его.
Аналогичная проблема с этим question, но мне нужно проверить ее программно.
Есть ли у вас какие-либо идеи или опыт?