2011-02-08 19 views
14

Próbuję opublikować usługa sieci web przy użyciu WCF na IIS7.Usługi IIS 7 nie rozpoznaje pliku svc

Stworzyłem Witrynę dla tego projektu, a także utworzyłem Aplikację jako MSDN suggested. Mogę otwierać pliki HTML w przeglądarce z utworzonego folderu, ale dostaję błąd 404,3 (żądana strona nie może być wyświetlana z powodu konfiguracji rozszerzenia), jeśli próbuję uzyskać dostęp do pliku svc mojej usługi. Czytałem, że powinienem uruchomić servicemodelreg, aby zainstalować brakujące programy obsługi dla plików svc. Po tym otrzymałem komunikat, że handler ma zły moduł.

Sprawdziłem następujący rzeczy za każdym razem:

  • IIS jest włączona
  • ASP.NET jest włączony
  • Jest obsługi dla SVC plików

Pobiegłem z pomysłów ...

+0

Co widzisz w dziennikach zdarzeń? – RQDQ

+0

Czy masz folder '/ bin' i jest tam plik binarny usług? –

+1

Spróbuj uruchomić plik aspnet_regiis.exe -i i ustawić pakiet aplikacji ApplindingPool na Framework 4. – vorrtex

Odpowiedz

18

Zdarza się, gdy IIS jest zainstalowany po .NET Framework i Visual Studio, więc konieczne jest t o zarejestruj ASP.Net. Jeśli na początku zainstalować IIS, nie będzie takich problemów.

Ale rozwiązanie jest proste: otwarty Visual Studio Command Promt i wpisz polecenie

aspnet_regiis.exe -i 

Oto link bardziej szczegółowych informacji na temat tego polecenia i jego parametrów.

+2

Wpadłem na podobny problem z Windows 8. Powyższe nie jest obsługiwane niestety. Musisz przejść do Panelu sterowania, włączyć lub wyłączyć funkcje systemu Windows i upewnić się, że funkcje wymagane w .NET 3.5 i 4.5 są zaznaczone. – Jon

+0

Uratowałem mój dzień !!! – Obelix

+0

Tak, w systemie Windows 8 uległo zmianie, ale DLACZEGO? To mnie przerasta, dlatego, że Microsoft ciągle zmienia proste podstawowe rzeczy, takie jak to, w skomplikowane funkcje dodawania/usuwania monstrum, gdzie przy okazji .NET 4 jest kompletnie pomijany (ma to oznaczać, że tykanie .NET 4.5 oznacza .NET 4, ale dlaczego wszystkie ten bałagan, zamiast prostej komendy aspnet_regiis). – Visar

22

w Windows 8, uruchom DISM.exe w celu umożliwienia WCF:

DISM /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation 
DISM /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation45 

lub jeśli konfigurujesz wszystko za pomocą Server Manager Panel użytkownika Dodaj role i funkcje kreatora nie zapomnij sprawdzić „Aktywacja HTTP” pod WCF Usługi

enter image description here

+2

tj. Nie zapomnij włączyć "Aktywacja HTTP" pod listą funkcji WCF z kreatora konfiguracji roli i funkcji .. dzięki! –

+0

Działa to w systemie Windows Server 2012, gdy nie masz zainstalowanego programu Visual Studio. –

3

dla Windows 8, aby umożliwić WCF musiał uruchomić te komendy administratora rozpoczął wiersz polecenia programu Visual Studio:

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 
+0

Najpierw odinstalowałem (z opcją "DISM/Online/Disable-Feature"), a następnie ponownie zainstalowałem i działałem! – digiogo

5

Wykonaj następujące kroki, aby umożliwić SVC Obsługa plików pod IIS na systemu Windows 10

  1. Naciśnij Okno Key + R (to pojawiają się Run polecenia wpisz optionalfeatures i naciśnij enter.
  2. Spowoduje to wywołanie kreatora funkcji programu. Upewnij się, że wybrano następujące opcje:, jak pokazano na migawce.

Wykonaj kroki wymienione w następnym Migawki

Snapshot 1 Showing the Windows Features Required to Turn On

Snapshot 2 Showing to turn on More Features

+0

To jest dokładnie to, czego potrzebowałem! Wspaniały post! +1 dla grafiki –

Powiązane problemy