Не удается использовать службы WCF в IIS для Windows 8

Когда я пытаюсь обслуживать службу WCF в IIS на машине под управлением Windows 8, я получаю известную ошибку

Запрошенная страница не может быть выполнена из-за конфигурации расширения. Если страница script, добавьте обработчик. Если файл нужно загрузить, добавьте MIME-карту.

Старая работа заключалась в том, чтобы запустить aspnet_regiis -i, но эта команда, похоже, устарела в Windows 8 с ответом This option is not supported on this version of the operating system. (...).

Какая работа?

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

Ответ 1

Казалось, что это не проблема; служба WCF должна быть включена с помощью Programs and Features -> Turn Windows features on or off на панели управления. Перейдите к .NET Framework Advanced Services -> WCF Services и включите HTTP Activation, как описано в этом сообщении в блоге на mdsn.

В командной строке (как admin) вы можете запустить:

C:\> DISM /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation
C:\> DISM /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation45

Если вы получили сообщение об ошибке, используйте ниже

C:\> DISM /Online /Enable-Feature /all /FeatureName:WCF-HTTP-Activation
C:\> DISM /Online /Enable-Feature /all /FeatureName:WCF-HTTP-Activation45

Ответ 2

В Windows Server 2012 решение очень похоже на faester (см. выше). В диспетчере серверов нажмите Add roles and features, выберите соответствующий сервер, затем выберите Features. В разделе .NET Framework 4.5 Features вы увидите WCF Services, и под ним вы найдете HTTP Activation.

Ответ 3

Проделайте следующие шаги в IIS 8.0

Добавить новый тип MIME и HttpHandler

  • Расширение:.svc, MIME-тип: application/octet-stream

  • Путь запроса: *.svc, Тип: System.ServiceModel.Activation.HttpHandler, Имя: svc-Integrated

Ответ 4

Это действительно то же самое решение, что и решение faester и Bill Moon, но вот как вы это делаете с PowerShell:

Import-Module Servermanager
Add-WindowsFeature AS-HTTP-Activation

Конечно, ничего не мешает вам вызывать DISM из PowerShell.

Ответ 5

Вы также можете добиться этого, включив функцию Turning windows. введите описание изображения здесь введите описание изображения здесь