WCF на IIS8; * Отображение обработчика .svc не работает

229

Я пытаюсь запустить 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.

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

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

Теги:
wcf
iis-8
iis-8.5

12 ответов

488
Лучший ответ

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

  • Запустите 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".
  • 6
    Этот не работал в моем случае, потому что я на Windows 8 (с IIS 8).
  • 9
    Если вы впервые запустили ServiceModelReg.exe –i из каталога v3.0, вам также нужно запустить ServiceModelReg.exe –ua, чтобы отменить его, прежде чем это сработает.
Показать ещё 12 комментариев
201

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

Изображение 5958

  • 10
    это то, что вам нужно сделать для Windows 8, где нет менеджера сервера
  • 2
    Это ответ, когда вы размещаете службу WCF в Windows 8 и Windows 8.1
Показать ещё 3 комментария
39

включите следующее: "Включение и выключение функций Windows"

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

b) все под службами WCF

  • 2
    Да это для всех тех, у кого нет серверной редакции
  • 1
    Мне нужно было только включить .Net Framework 3.5 - активация WCF HTTP
Показать ещё 1 комментарий
35

Windows 8 с IIS8

  • Хит Windows+X
  • Выберите Programs and Features (первый элемент в списке)
  • Выберите Turn Windows Features on or off слева
  • Развернуть .NET Framework 4.5 Advanced Services
  • Развернуть WCF Services
  • Включить HTTP Activation
  • 0
    любой сценарий PowerShell для сделать это программно?
  • 0
    у нас есть один сервер, так что я никогда не вхожу в продвинутый Powershell
26

Я предпочитаю делать это через 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
  • 2
    Спасибо dism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation dism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation45 мне было достаточно ...
  • 0
    Это лучший способ исправить это в новой версии Windows Server 2012R2 +. Вероятно, работает и в 2012 году, но, к счастью, у меня больше нет тех, чтобы попробовать это.
Показать ещё 1 комментарий
10

Нам удалось решить ошибку в Windows Server 2012:

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

Это означает, что порядок установки является причиной.

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

  • 0
    Спасибо Спасибо спасибо. Жаль, что я не смогу проголосовать за этот x100
  • 0
    Я сделал это и, похоже, убил мой сервер. Я только удалил материал asp.net из iis, но теперь, когда я удаленно, я получаю черный экран и окно командной строки, как будто сервер теперь только «ядро сервера» ... :(
Показать ещё 1 комментарий
3

Для машин 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

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

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

  • 0
    Ключевой бит включает активацию HTTP.
  • 0
    Как насчет gyorgybalassy.wordpress.com/2012/09/24/… ?
2

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

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

1

с помощью PowerShell вы можете установить требуемую функцию с помощью

Add-WindowsFeature 'NET-HTTP-Activation'
0

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

У меня в URL-адресах Project Settings\\\\\\\\\\\\\\\\\\\\

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

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

DOH!

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

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

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

0

В окнах 10 (клиент) вы также можете script использовать

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

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

0

Функция HTTP-активации платформы .NET Также требуется функция активации Windows.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню