WCF на IIS8; *.svc-обработчик не работает
Я пытаюсь запустить wcf-сервис, запущенный в IIS8 в 2012 build 8400.
При установке веб-роли материал wcf (до 3.51) не был найден, как в 2008 году.
При установке отсутствует сопоставление обработчика svc, поэтому я сделал:
%windir%\Microsoft.NET\Framework\v3.0\WindowsCommunication Foundation\ServiceModelReg.exe –i
Теперь отображение обработчика есть, но я все еще получаю:
The resource you are looking for does not have a handler associated with it.
(я удалил статический обработчик файла.)
Сайт использует классический конвейер для использования олицетворения.
Ответы
Ответ 1
Более конкретно:
- Запустите
Server Manager
(на панели задач и в меню "Пуск" )
- Выберите сервер для администрирования (возможно, локальный сервер)
- Прокрутите вниз до раздела "
Roles and Features
".
- Выберите "
Add Role or Feature
" в раскрывающемся списке "Задачи"
- В диалоговом окне "
Add Role or Feature Wizard
" нажмите "Features
" в списке страниц слева.
- Разверните
".Net 3.5"
или ".Net 4.5"
, в зависимости от того, что вы установили. (вы можете вернуться к экрану "roles
", чтобы добавить, если у вас его нет.
- В разделе "
WCF Services
" установите флажок "HTTP-Activation
". Вы также можете добавить не-http-типы, если знаете, что вам нужны они (tcp, named pipes и т.д.).
- Нажмите кнопку
"Install"
.
Ответ 2
Мне пришлось включить HTTP Activation
в .NET Framework 4.5 Advanced Services
> WCF Services
![Enable HTTP Activation]()
Ответ 3
включите следующее: "Включение и выключение функций Windows"
a).Net Framework 3.5 - HTTP-активация HTTP и активация без Http
b) все под службами WCF
Ответ 4
Windows 8 с IIS8
- Хит
Windows+X
- Выберите
Programs and Features
(первый элемент в списке)
- Выберите
Turn Windows Features on or off
слева
- Развернуть
.NET Framework 4.5 Advanced Services
- Развернуть
WCF Services
- Включить
HTTP Activation
Ответ 5
Я предпочитаю делать это через script в настоящее время
REM install the needed Windows IIS features for WCF
dism /Online /Enable-Feature /FeatureName:WAS-WindowsActivationService
dism /Online /Enable-Feature /FeatureName:WAS-ProcessModel
dism /Online /Enable-Feature /FeatureName:WAS-NetFxEnvironment
dism /Online /Enable-Feature /FeatureName:WAS-ConfigurationAPI
dism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation
dism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation45
REM Feature Install Complete
pause
Ответ 6
Нам удалось решить ошибку в Windows Server 2012:
- Удаление из мастера "Удаление роли и функций". Возможности .NET Framework 4.5/ASP.NET 4.5 и все его зависимые функции.
- Повторная установка удаленных функций.
Это означает, что порядок установки является причиной.
Кроме того, убедитесь, что в службах WCF установлена HTTP-активация.
Ответ 7
Для машин Windows 8 нет приложения "Менеджер сервера" (по крайней мере, я не смог его найти).
Хотя я смог решить проблему. Я не уверен, в какой последовательности я выполнил следующие операции, но выглядит как одна или несколько из следующих действий:
-
Включите следующее: "Включение и выключение Windows-функций".).Net Framework 3.5 - активация HTTP HTTP и активация без Http. b) все под службами WCF (как указано в одном из ответов на этот вопрос вопрос)
-
выполнено "ServiceModelReg.exe -i" в папке "% windir%\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\
-
Зарегистрированный ASP.NET 2.0 с помощью двух команд (в папке C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727):
aspnet_regiis -ga "NT AUTHORITY\NETWORK SERVICE"
aspnet_regiis -iru
-
Перезагруженный ПК... это похоже на результат, поскольку действия ## 3 и 4 что-то сломалось в моей конфигурации ASP.NET
-
Повторить действие # 2
-
Установите еще две опции из "Программы и компоненты":.Net Framework 4.5 Advanced Services. Я проверил оба дополнительных параметра: ASP.NET 4.5 и службы WCF
-
Перезапустить пул приложений.
Последовательность отчасти сумасшедшая, но это помогло мне и, вероятно, поможет другим
Ответ 8
Порядок установки имеет большое значение при настройке IIS 8 на Windows 8 или Windows Server 2012.
Я столкнулся с множеством проблем с настройкой IIS 8, но, наконец, эти ссылки помогли мне
Ответ 9
с помощью PowerShell вы можете установить требуемую функцию с помощью
Add-WindowsFeature 'NET-HTTP-Activation'
Ответ 10
Функция HTTP-активации платформы .NET
Также требуется функция активации Windows.
Ответ 11
В окнах 10 (клиент) вы также можете script использовать
Enable-WindowsOptionalFeature -Online -NoRestart -FeatureName WCF-HTTP-Activation45 -All
Обратите внимание, что это другая команда с сервера skus
Ответ 12
Это было действительно глупо для меня. Добавление этого здесь как одного из наиболее популярных потоков в проблемах svc 404.
У меня в URL-адресах Project Settings\\\\\\\\\\\\\\\\\\\\
http://blah.webservice.local.blahblah.com/Blah.svc
И по какой-то неизвестной причине (сделав это тысячу раз) сразу не заметили, что имя файла .svc было в конце.
DOH!
Я только что вставил адрес из моего тестового клиента WCF и не проверил его достаточно. На этом фоне было создано приложение IIS на адресе .svc, и я ничего не получал от IIS. Я не мог понять, как я даже не мог попасть в файл .svc.
Простое исправление, очевидно, просто удалите приложение в IIS и измените URL проекта.
Спустя почти 20 лет, вы все равно можете сделать ошибки школьника/ошибки новобранец. Надеюсь, это поможет кому-то.