Я пытаюсь обновить веб-службу WCF с .NET 3.0 до 4. Я запустил
Aspnet_regiis.exe
и
ServiceModelReg.exe
А также изменил пул приложений для использования v4.0. Я перестроил служебную dll с .NET 4.0 в качестве цели и переместил ее в каталог / bin на моем сайте.
Я столкнулся с ошибкой, которая сводит меня с ума. Всякий раз, когда я пытаюсь зайти на сайт, я получаю следующую ошибку:
HTTP Error 500.19 - Internal Server Error
The requested page cannot be accessed because the related configuration data for the page is invalid.
Раздел конфигурации 'system.serviceModel' не может быть прочитан, поскольку в нем отсутствует объявление раздела.
Я пробовал решения, которые нашел в Google, и ничего не работает. Я чувствую, что кто-то более опытный с IIS 7 точно знает, что не так. Может ли кто-нибудь помочь с этой проблемой
Я нашел проблему. Мне нужно было установить исправление описано здесь, который является шагом 3 в «Единовременной процедуре настройки образцов WCF» для эти Примеры кода WCF.
Попробуйте aspnet_regiis.exe / iru
Что можно проверить:
Вы изменили ссылки WCF в своем приложении на версии Framework 4.0?
Вот статья службы поддержки Microsoft: Сообщение об ошибке после установки .NET Framework 4.0: «Не удалось загрузить тип 'System.ServiceModel.Activation.HttpModule'»:
Эта проблема возникает из-за того, что в файле Applicationhost.config для службы активации процессов Windows (WAS) определен следующий раздел, и этот раздел несовместим с .NET Framework 4.0 [...]
.svc: убедитесь, что IIS и WCF правильно установлены и зарегистрированы: http://msdn.microsoft.com/en-us/library/aa751792.aspx
Убедитесь, что функция активации WCF HTTP установлена в разделе «Роли / компоненты сервера» (это будет версия 3.5), затем переустановите .NET Framework 4.0. (Вам нужно будет установить его из загрузки, он не является частью компонентов / функций Windows)
Если вам повезет, это должно перерегистрировать карты сценариев таким образом, чтобы .NET 4 успешно получал запросы активации WAS HTTP от IIS вместо обхода до 3.5, который не понимает, что его просят сделать.
Теоретически, aspnet_regiis / i из каталога .NET Framework 4.0 тоже должны сделать это, но вы сказали, что уже пробовали это.