Не удается использовать службы 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.
![введите описание изображения здесь]()