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.
Musiałem włączyć
HTTP Activation
w.NET Framework 4.5 Advanced Services
>WCF Services
źródło
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
źródło
Windows 8 z IIS8
Windows+X
Programs and Features
(pierwszy element na liście)Turn Windows Features on or off
po lewej.NET Framework 4.5 Advanced Services
WCF Services
HTTP Activation
źródło
W tej chwili wolę to robić za pomocą skryptu
źródło
dism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation dism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation45
były mi wystarczające ...Udało nam się rozwiązać błąd w systemie Windows Server 2012 przez:
Wydaje się, że przyczyną jest kolejność instalacji.
Upewnij się także, że masz aktywację HTTP w ramach usług WCF.
źródło
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:
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)
wykonano „ServiceModelReg.exe –i” w folderze „% windir% \ Microsoft.NET \ Framework \ v3.0 \ Windows Communication Foundation \”
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
Zrestartowałem komputer ... wygląda na to, że w działaniach ## 3 i 4 coś się popsuło w mojej konfiguracji ASP.NET
Powtórz czynność # 2
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
Uruchom ponownie pulę aplikacji.
Sekwencja jest trochę szalona, ale pomogło mi to i prawdopodobnie pomoże innym
źródło
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
źródło
Za pomocą programu PowerShell można zainstalować wymaganą funkcję za pomocą:
źródło
W systemie Windows 10 (klient) można to również wykonać za pomocą skryptu
Zauważ, że jest to inne polecenie niż skus serwera
źródło
Wymagana jest również funkcja aktywacji HTTP w .NET Framework. Funkcja aktywacji procesów systemu Windows
źródło
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:
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.
źródło