WCF на IIS8; * .svc Зображення обробника не працює


272

Я намагаюся запустити сервіс wcf, який працює в IIS8 на 2012 збірку 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.

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

Сайт використовує класичний конвеєр, щоб використати себе за себе.

Відповіді:


553

Більш конкретно:

  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"кнопку.

6
У моєму випадку ця робота не працювала, оскільки я перебуваю на Windows 8 (з IIS 8).
Джош Муш

9
Якщо ви вперше запустили ServiceModelReg.exe –i з каталогу v3.0, вам також потрібно запустити ServiceModelReg.exe –ua, щоб скасувати його, перш ніж це буде працювати.
Скотт Андерсон

14
З командного рядка: dism / Online / Enable-Feature / FeatureName: WCF-HTTP-Activation / All
Річард

4
Що стосується gyorgybalassy.wordpress.com/2012/09/24/… ? який кращий спосіб?
Кікенет

9
Я буквально дивився на сторінку "Ролі сервера" протягом години. Я не мав уявлення, що ви можете просто натиснути «Далі» або натиснути «Властивості» зліва. o_O +1
Dan Bechard

219

Я повинен був включити HTTP Activationв .NET Framework 4.5 Advanced Services>WCF Services

Увімкнути активацію HTTP


10
це те, що потрібно зробити для Windows 8, де немає менеджера сервера
Simon_Weaver

2
Це відповідь, коли ви розміщуєте службу WCF у Windows 8 та Windows 8.1
vcRobe

Активація http. Це незалежно від використання http / https? Таким чином, це підсумкове ім’я обох чи все ще потрібне розмежування?
Томас

2
Я стикався з подібною проблемою на IIS 10, активація Http вимкнено за замовчуванням. Увімкнувши це, проблему вирішено відразу. Дякую!
dhruvpatel

4
Працює для Windows 10, IIS 10
watbywbarif

45

увімкніть наступне: "Увімкнення та вимкнення функцій Windows"

a) .Net Framework 3.5 - Активація HTTP HTTP та не-Http активація

б) все під Послуги WCF


1
Мені довелося лише ввімкнути .Net Framework 3.5 - Активація WCF HTTP
daveywc

40

Windows 8 з IIS8

  • Удар Windows+X
  • Виберіть Programs and Features(перший елемент у списку)
  • Виберіть Turn Windows Features on or offзліва
  • Розгорнути .NET Framework 4.5 Advanced Services
  • Розгорнути WCF Services
  • Увімкнути HTTP Activation

будь-який скрипт повноважень для цього робити програмно?
Кікенет

у нас є один сервер, тому я ніколи не потрапляю в розширений Powershell
Simon_Weaver

28

Я вважаю за краще це робити за допомогою сценарію

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мені вистачило ...
Шуб

Це найкращий спосіб виправити це в новій версії 2012R2 + Windows Server. Можливо, працює і в 2012 році, але, на щастя, у мене більше немає тих, хто б це спробувати.
Пол Штурм

та використовуєте сценарій PowerShell ?
Кікенет

@Kiquenet Ці команди працюватимуть у shellhell. Якщо ви намагалися скопіювати команду Shubh безпосередньо, вам потрібно додати перерву рядка або крапку з комою після першої команди перед другою командою dism.
kb4000

10

Нам вдалося вирішити помилку в Windows Server 2012:

  1. Видалення з "Майстра видалення ролей та особливостей". Особливості .NET Framework 4.5 / ASP.NET 4.5 та всіх його залежних функцій
  2. Повторна інсталяція видалених функцій.

Здається, причина порядку встановлення.

Також переконайтеся, що у вас є встановлення HTTP Activation під WCF Services.


Я це зробив і, здається, вбив мого сервера. Я тільки видалив речі asp.net під iis, але тепер, коли я віддалений, я отримую чорний екран і вікно командної
строки

@MGOwen, коли ви видалите деякі функції.
Джон

3

Для машин Windows 8 немає програми "Менеджер сервера" (принаймні, я не зміг її знайти).

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

  1. Увімкніть наступне: "Увімкнення та вимкнення функцій Windows" a). Net Framework 3.5 - Активація WCF HTTP та Non-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. Перезапустити пул додатків.

Послідовність є якось божевільною, але це мені допомогло і, мабуть, допоможе іншим


Ключовим бітом є активація HTTP.
Умар Фарук Хавая



2

за допомогою PowerShell ви можете встановити необхідну функцію за допомогою:

Add-WindowsFeature 'NET-HTTP-Activation'

1

У Windows 10 (клієнт) ви також можете це сценарій використовувати

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

Зауважте, що це команда, що відрізняється від скісу сервера


0

Також потрібна функція активації HTTP для .NET Framework Windows Activation Activation


0

Це було для мене справді нерозумно. Додайте це сюди, оскільки це одна з найпопулярніших тем у випуску svc 404.

Я вклеював у налаштуваннях проекту \ Web / Project URL:

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

І з незрозумілої причини (зробивши це тисячу разів) відразу не помітив, що назва файлу .svc було в кінці.

ДОХ!

Я щойно вставив адресу від свого тестового клієнта WCF і не перевірив її достатньо. На задньому плані це було створення програми IIS за адресою .svc, і я нічого не отримував з IIS. Я не міг розібратися, як я навіть не міг потрапити у файл .svc.

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

Після майже 20 років на цьому ви все ще можете робити помилки школяра / початківця. Сподіваюся, що це комусь допоможе.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.