WCF na IIS8; * Mapowanie obsługi .svc nie działa

272

Usiłuję uruchomić usługę wcf działającą w IIS8 na kompilacji 8400 z 2012 roku.

Podczas instalowania roli internetowej nie znaleziono rzeczy wcf (poniżej 3.51) jak w 2008 roku.

Po zainstalowaniu brakowało mapowania programu obsługi svc, więc zrobiłem:

%windir%\Microsoft.NET\Framework\v3.0\WindowsCommunication Foundation\ServiceModelReg.exe i

Teraz mapowanie modułu obsługi jest dostępne, ale nadal otrzymuję:

The resource you are looking for does not have a handler associated with it.

(Usunąłem program do obsługi plików statycznych).

Witryna korzysta z klasycznego potoku w celu podszywania się pod inne osoby.

Carl R.
źródło

Odpowiedzi:

553

Dokładniej:

  1. Uruchom Server Manager(na pasku zadań i menu Start)
  2. Wybierz serwer do administrowania (prawdopodobnie serwer lokalny)
  3. Przewiń w dół do Roles and Featuressekcji „ ”.
  4. Wybierz „ Add Role or Feature” z listy rozwijanej Zadania
  5. W Add Role or Feature Wizardoknie dialogowym „ ” kliknij „ Features” na liście stron po lewej stronie.
  6. Rozwiń ".Net 3.5"lub ".Net 4.5", w zależności od tego, co zainstalowałeś. (możesz wrócić do rolesekranu „ ”, aby dodać, jeśli nie masz.
  7. W WCF Servicessekcji „ ” zaznacz pole „ HTTP-Activation”. Możesz również dodać typy inne niż http, jeśli wiesz, że ich potrzebujesz (tcp, nazwane potoki itp.).
  8. Kliknij "Install"przycisk.
Brian Jimdar
źródło
6
Ten nie działał w moim przypadku, ponieważ korzystam z systemu Windows 8 (z IIS 8).
Josh Mouch,
9
Jeśli najpierw uruchomiłeś ServiceModelReg.exe –i z katalogu v3.0, musisz również uruchomić ServiceModelReg.exe –ua, aby cofnąć go, zanim to zadziała.
Scott Anderson
14
Z wiersza polecenia: dism / Online / Enable-Feature / FeatureName: WCF-HTTP-Activation / All
Richard
4
Co jest z gyorgybalassy.wordpress.com/2012/09/24/… ? który jest lepszy sposób?
Kiquenet,
9
Przez godzinę wpatrywałem się w stronę „Role serwera”. Nie miałem pojęcia, że ​​możesz po prostu kliknąć „Dalej” lub „Funkcje” po lewej stronie. o_O +1
Dan Bechard
219

Musiałem włączyć HTTP Activationw .NET Framework 4.5 Advanced Services>WCF Services

Włącz aktywację HTTP

joshcomley
źródło
10
to jest to, co trzeba zrobić dla Windows 8, gdzie nie ma Server Manager
Simon_Weaver
2
To jest odpowiedź, gdy
hostujesz
Aktywacja http. Czy to niezależnie od tego, czy używasz http / https? Czy zatem jest to skrótowa nazwa dla obu, czy też nadal istnieje potrzeba rozróżnienia?
Thomas
2
Napotkałem podobny problem na IIS 10, Aktywacja HTTP jest domyślnie wyłączona. Włączenie go rozwiązało problem od razu. Dzięki!
dhruvpatel
4
Działa w systemie Windows 10, IIS 10
watbywbarif
45

włącz następujące opcje „Włącz lub wyłącz funkcje systemu Windows”

a) .Net Framework 3.5 - Aktywacja WCF HTTP i aktywacja bez HTTP

b) wszystkie w ramach usług WCF

Dino
źródło
1
Musiałem tylko włączyć .Net Framework 3.5 - Aktywacja HTTP WCF
daveywc
40

Windows 8 z IIS8

  • Trafienie Windows+X
  • Wybierz Programs and Features(pierwszy element na liście)
  • Wybierz Turn Windows Features on or offpo lewej
  • Rozszerzać .NET Framework 4.5 Advanced Services
  • Rozszerzać WCF Services
  • Włączyć HTTP Activation
Simon_Weaver
źródło
jakiś skrypt PowerShell do zrobienia tego programowo?
Kiquenet,
mamy jeden serwer, więc nigdy nie
wchodzę
28

W tej chwili wolę to robić za pomocą skryptu

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
Jon
źródło
2
Dzięki dism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation dism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation45były mi wystarczające ...
Shubh
Jest to najlepszy sposób, aby to naprawić w nowej wersji systemu Windows Server 2012R2 +. Prawdopodobnie działa również w 2012 roku, ale na szczęście nie mam już tych, którzy mogliby to wypróbować.
Paul Sturm,
i używasz skryptu PowerShell ?
Kiquenet
@Kiquenet Te polecenia będą działać w PowerShell. Jeśli próbowałeś skopiować bezpośrednio polecenie Shubha, musisz dodać podział wiersza lub średnik po pierwszym poleceniu przed drugim poleceniem odrzucenia.
kb4000
10

Udało nam się rozwiązać błąd w systemie Windows Server 2012 przez:

  1. Usuwanie z „Kreatora usuwania ról i funkcji” .NET Framework 4.5 Funkcje / ASP.NET 4.5 i wszystkich jego funkcji zależnych
  2. Ponowna instalacja usuniętych funkcji.

Wydaje się, że przyczyną jest kolejność instalacji.

Upewnij się także, że masz aktywację HTTP w ramach usług WCF.

Radu Damian
źródło
Zrobiłem to i chyba zabiłem mój serwer. Odinstalowałem tylko pliki asp.net w systemie iis, ale teraz kiedy się zdalnie dostaję, pojawia się czarny ekran i okno wiersza poleceń, tak jakby serwer był teraz tylko „rdzeniem serwera” ... :(
MGOwen,
@MGOwen po usunięciu niektórych funkcji .net 4.5 wygląda na to, że usuwa on również graficzną powłokę serwera, którą można dodać ponownie za pomocą niektórych poleceń.
John
3

W przypadku komputerów z systemem Windows 8 nie ma aplikacji „Server Manager” (przynajmniej nie mogłem jej znaleźć).

Chociaż udało mi się rozwiązać problem . Nie jestem pewien, w jakiej kolejności wykonałem następujące operacje, ale wygląda na to, że jedno / kilka poniższych działań pomaga:

  1. Włącz następujące „Włączanie lub wyłączanie funkcji systemu Windows” a) .Net Framework 3.5 - Aktywacja HTTP WCF i aktywacja bez HTTP b) wszystko w ramach usług WCF (jak określono w jednej z odpowiedzi na to pytanie)

  2. wykonano „ServiceModelReg.exe –i” w folderze „% windir% \ Microsoft.NET \ Framework \ v3.0 \ Windows Communication Foundation \”

  3. Zarejestrowana platforma ASP.NET 2.0 za pomocą dwóch poleceń (w folderze C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727):

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

  4. Zrestartowałem komputer ... wygląda na to, że w działaniach ## 3 i 4 coś się popsuło w mojej konfiguracji ASP.NET

  5. Powtórz czynność # 2

  6. Zainstaluj dwie inne opcje z „Programy i funkcje”: Zaawansowane usługi .Net Framework 4.5. Sprawdziłem obie opcje podrzędne: ASP.NET 4.5 i usługi WCF

  7. Uruchom ponownie pulę aplikacji.

Sekwencja jest trochę szalona, ​​ale pomogło mi to i prawdopodobnie pomoże innym

Budda
źródło
Kluczem jest włączenie aktywacji HTTP.
Umar Farooq Khawaja
2

Kolejność instalacji ma duże znaczenie podczas konfigurowania IIS 8 w systemie Windows 8 lub Windows Server 2012.

Miałem wiele problemów z konfiguracją IIS 8, ale w końcu te linki mi pomogły

Sunil Agarwal
źródło
2

Za pomocą programu PowerShell można zainstalować wymaganą funkcję za pomocą:

Add-WindowsFeature 'NET-HTTP-Activation'
Owais F.
źródło
1

W systemie Windows 10 (klient) można to również wykonać za pomocą skryptu

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

Zauważ, że jest to inne polecenie niż skus serwera

aL3891
źródło
0

Wymagana jest również funkcja aktywacji HTTP w .NET Framework. Funkcja aktywacji procesów systemu Windows

Max
źródło
0

To było dla mnie naprawdę głupie. Dodając to tutaj, ponieważ jest to jeden z bardziej popularnych wątków dotyczących problemów z svc 404.

W moim ustawieniach projektu „\ Web \ Project URL” wkleiłem:

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

I z jakiegoś nieznanego powodu (robiąc to tysiąc razy) nie od razu zauważył, że nazwa pliku .svc jest na końcu.

DOH!

Właśnie wkleiłem adres mojego klienta testowego WCF i nie sprawdziłem go wystarczająco. To, co zrobiło to w tle, polegało na utworzeniu aplikacji IIS pod adresem .svc i nic nie otrzymywałem z IIS. Nie mogłem zrozumieć, w jaki sposób nie mogłem nawet trafić do pliku .svc.

Prosta poprawka, oczywiście, po prostu usuń aplikację w IIS i zmień adres URL projektu.

Po prawie 20 latach nadal możesz popełniać błędy ucznia / debiutanta. Mam nadzieję, że to komuś pomoże.

Podwójny wyczyn kaskaderski Moby'ego
źródło