WCF на IIS8; Сопоставление обработчика * .svc не работает

Я пытаюсь запустить службу WCF в IIS8 на Windows Server 2012 build 8400.

При установке веб-роли материалы WCF (до версии 3.51) не были найдены, как в Windows Server 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.

(Я удалил обработчик статических файлов.)

Сайт использует классический конвейер для олицетворения.


person Carl R    schedule 20.06.2012    source источник


Ответы (12)


Более конкретно:

  1. Запустить Server Manager (на панели задач и в меню "Пуск")
  2. Выберите сервер для администрирования (возможно, локальный сервер)
  3. Прокрутите вниз до раздела «Roles and Features».
  4. В раскрывающемся списке "Задачи" выберите "Add Role or Feature".
  5. В диалоговом окне «Add Role or Feature Wizard» щелкните вниз до «Features» в списке страниц слева.
  6. Разверните ".Net 3.5" или ".Net 4.5", в зависимости от того, что вы установили. (вы можете вернуться на экран «roles» и добавить, если у вас его нет.
  7. В разделе «WCF Services» установите флажок для «HTTP-Activation». Вы также можете добавить типы, отличные от http, если знаете, что они вам нужны (tcp, именованные каналы и т. Д.).
  8. Нажмите кнопку "Install".
person Brian Jimdar    schedule 20.09.2012
comment
В моем случае это не сработало, потому что я использую Windows 8 (с IIS 8). - person Josh Mouch; 25.10.2012
comment
Если вы сначала запустили ServiceModelReg.exe –i из каталога v3.0, вам также необходимо запустить ServiceModelReg.exe –ua, чтобы отменить его, прежде чем это сработает. - person Scott Anderson; 01.03.2013
comment
Из командной строки: DISM / Online / Enable-Feature / FeatureName: WCF-HTTP-Activation / All - person Richard; 05.11.2013
comment
Что насчет gyorgybalassy.wordpress.com/ 2012/09/24 /? какой способ лучше? - person Kiquenet; 19.12.2013
comment
Мне нужно было перезапустить сервер = ( - person Akira Yamamoto; 28.01.2014
comment
Джош, у меня это сработало с IIS 8.5 в Windows 8.1. - person Ryan Shripat; 23.06.2014
comment
@GWTF - вы были правы - вот чего мне не хватало; Я использовал ServiceModelReg.exe -u, чтобы удалить его из каталога v3.0, и функции, которые я добавил ранее (используя шаги в ответе), просто работали. - person BeemerGuy; 24.09.2014
comment
В моем случае это заставило IIS обслуживать URL-адрес service - фактический файл .svc, например example.com/service.svc, но не методы, например example.com/service.svc/Method?Parameter=1. Если у кого-то еще есть эта проблема, проверьте свои привязки, см. Этот вопрос: stackoverflow.com/questions/26398049 - person MGOwen; 24.10.2014
comment
Пришлось также включить привязку HTTPS для сайта. - person Erick Smith; 01.12.2014
comment
Я буквально час смотрел на страницу «Роли сервера». Я понятия не имел, что можно просто щелкнуть «Далее» или щелкнуть «Функции» слева. о_О +1 - person Dan Bechard; 06.04.2015
comment
Я бы поставил два лайка, если бы это было возможно;). В моем случае это был перенесен веб-сервис с сервера 2008 на 2012 R2. Спасибо! - person Jack0fshad0ws; 25.04.2016
comment
Также работает с IIS 10 на Server 2016 - person Vaelen; 08.05.2017
comment
Спасибо! Работает и на Windows Server 2016 с iis 10!))) - person Vladislav; 31.08.2017
comment
Из PowerShell: ServerManager \ Install-WindowsFeature NET-WCF-HTTP-Activation45 - person gigi; 08.06.2018

Пришлось включить HTTP Activation в .NET Framework 4.5 Advanced Services> WCF Services

Включить активацию HTTP

person joshcomley    schedule 23.01.2013
comment
это то, что вам нужно сделать для Windows 8, где нет диспетчера серверов - person Simon_Weaver; 31.07.2013
comment
Это ответ, когда вы размещаете службу WCF в Windows 8 и Windows 8.1. - person vcRobe; 12.03.2015
comment
Активация http. Независимо от того, используете ли вы http / https? Таким образом, это краткое название для обоих или все же необходимо различие? - person Thomas; 28.04.2015
comment
Я столкнулся с аналогичной проблемой в IIS 10, активация HTTP по умолчанию отключена. Включение сразу решило проблему. Спасибо! - person dhruvpatel; 21.12.2015
comment
Работает для Windows 10, IIS 10 - person watbywbarif; 29.03.2016

Включите следующее в «Включение или отключение компонентов Windows»

а) .Net Framework 3.5 - активация WCF HTTP и активация без HTTP

б) все в рамках Служб WCF

person Dino    schedule 27.08.2012
comment
Мне нужно было только включить .Net Framework 3.5 - HTTP-активация WCF - person daveywc; 21.11.2014

Windows 8 с IIS8

  • Ударь Windows+X
  • Выберите Programs and Features (первый элемент в списке)
  • Выберите Turn Windows Features on or off слева
  • Развернуть .NET Framework 4.5 Advanced Services
  • Развернуть WCF Services
  • Включить HTTP Activation
person Simon_Weaver    schedule 30.07.2013
comment
любой сценарий PowerShell для программного обеспечения? - person Kiquenet; 19.12.2013
comment
у нас есть один сервер, поэтому я никогда не углубляюсь в расширенный Powershell - person Simon_Weaver; 23.12.2013

Сейчас я предпочитаю делать это через скрипт

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
person Jon    schedule 30.06.2014
comment
Спасибо dism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation dism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation45 мне было достаточно ... - person Shubh; 10.02.2015
comment
Это лучший способ исправить это в новой версии Windows Server 2012R2 +. Вероятно, работает и в 2012 году, но, к счастью, у меня больше нет таких, на которых можно было бы это опробовать. - person Paul Sturm; 04.04.2017
comment
и с помощью PowerShell script? - person Kiquenet; 29.05.2018
comment
@Kiquenet Все эти команды будут работать в PowerShell. Если вы пытались скопировать команду Шубха напрямую, вам нужно добавить разрыв строки или точку с запятой после первой команды перед второй командой DISM. - person kb4000; 18.06.2020

Исправить ошибку под Windows Server 2012 удалось:

  1. Удаление из «Мастера удаления ролей и компонентов». Возможности .NET Framework 4.5 / ASP.NET 4.5 и все его зависимые функции
  2. Повторная установка удаленных функций.

Кажется, причина в порядке установки.

Кроме того, убедитесь, что у вас установлена ​​активация HTTP в службах WCF.

person Radu Damian    schedule 11.03.2013
comment
Я сделал это и, похоже, убил свой сервер. Я удалил только файлы asp.net под iis, но теперь, когда я удален, я получаю черный экран и окно командной строки, например, теперь сервер является только ядром сервера ... :( - person MGOwen; 15.10.2014
comment
@MGOwen, когда вы удаляете некоторые функции .net 4.5, похоже, что он также удаляет графическую оболочку сервера, это можно снова добавить с помощью некоторых команд. - person John; 07.07.2015

Для машин с Windows 8 нет приложения "Диспетчер серверов" (по крайней мере, мне не удалось его найти).

Хотя мне удалось решить проблему. Я не уверен, в какой последовательности я выполнил следующие операции, но похоже, что одно / несколько из следующих действий помогают:

  1. Включите следующее в «Включение или отключение компонентов Windows» a) .Net Framework 3.5 - HTTP-активация WCF и активация без Http b) все в службах WCF (как указано в одном из ответов на этот вопрос)

  2. выполнил "ServiceModelReg.exe –i" в папке "% windir% \ Microsoft.NET \ Framework \ v3.0 \ Windows Communication Foundation \"

  3. Зарегистрировал ASP.NET 2.0 двумя командами (в папке C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727):

    aspnet_regiis -ga "NT AUTHORITY \ NETWORK SERVICE" aspnet_regiis -iru

  4. Перезагрузка ПК ... похоже, что в результате действий ## 3 и 4 что-то сломалось в моей конфигурации ASP.NET

  5. Повторите действие № 2

  6. Установите два других варианта из «Программы и компоненты»: .Net Framework 4.5 Advanced Services. Я проверил оба дополнительных параметра: службы ASP.NET 4.5 и WCF.

  7. Перезапустите пул приложений.

Последовательность сумасшедшая, но это помогло мне и, вероятно, поможет другим.

person Budda    schedule 02.01.2013
comment
Ключевой бит включает активацию HTTP. - person Umar Farooq Khawaja; 30.11.2013
comment
Что насчет gyorgybalassy.wordpress.com/2012/ 24.09 /? - person Kiquenet; 19.12.2013

Порядок установки имеет большое значение при настройке IIS 8 в Windows 8 или Windows Server 2012.

Я столкнулся с множеством проблем с настройкой IIS 8, но, наконец, эти ссылки мне помогли.

person Sunil Agarwal    schedule 14.03.2013

используя PowerShell, вы можете установить необходимую функцию с помощью:

Add-WindowsFeature 'NET-HTTP-Activation'
person Owais F    schedule 21.04.2015

В Windows 10 (клиент) вы также можете создать сценарий, используя

Enable-WindowsOptionalFeature -Online -NoRestart -FeatureName WCF-HTTP-Activation45 -All

Обратите внимание, что это другая команда из скуса сервера

person aL3891    schedule 06.09.2016

Это функция HTTP-активации .NET framework. Также требуется функция активации Windows.

person Max    schedule 31.10.2015

Для меня это было действительно глупо. Добавляем это здесь, так как это одна из самых популярных тем по вопросам svc 404.

В моем Project Settings '\ Web \ Project URL вставлено:

http://blah.webservice.local.blahblah.com/Blah.svc

И по какой-то неизвестной причине (проделав это тысячу раз) не сразу заметил, что имя файла .svc стоит в конце.

DOH!

Я только что вставил адрес из своего тестового клиента WCF и недостаточно его проверил. В фоновом режиме это было сделано для создания приложения IIS по адресу .svc, и я ничего не получал от IIS. Я не мог понять, как я не могу попасть даже в файл .svc.

Простое исправление, очевидно, просто удалите приложение в IIS и измените URL-адрес проекта.

Спустя почти 20 лет вы все еще можете делать ошибки школьников / новичков. Надеюсь, это кому-то поможет.

person Moby's Stunt Double    schedule 18.10.2016