„Żądana strona nie może zostać wyświetlona z powodu konfiguracji rozszerzenia.” Komunikat o błędzie

272

Otrzymuję ten komunikat o błędzie podczas próby uruchomienia aplikacji. Nie wiem jak to naprawić:

Błąd HTTP 404,3 - Nie znaleziono Nie można wyświetlić strony, której dotyczy wniosek, z powodu konfiguracji rozszerzenia. Jeśli strona jest skryptem, dodaj moduł obsługi. Jeśli plik powinien zostać pobrany, dodaj mapę MIME.

Oto zrzut ekranu strony błędu: alternatywny tekst

Co mogę zrobić, aby naprawić ten błąd?

Eric Leschinski
źródło
1
kod źródłowy byłby bardziej pomocny niż strona błędu
gsharp
1
Jaką część kodu źródłowego potrzebujesz?
1
Po wykonaniu powyższej instrukcji, a także jeśli wystąpi ten sam błąd, przejdź przez poniższy link i postępuj zgodnie z instrukcjami Kliknij tutaj
Raj

Odpowiedzi:

170

Użyj aspnet_regiis.exe, aby zarejestrować używaną wersję .NET Framework.

Jest to częsty problem, który występuje, gdy IIS jest instalowany po VS lub .NET Framework.

Uwaga - w przypadku użytkowników systemu Windows 8/10 zobacz inną odpowiedź JohnOpincar poniżej . A także komentarz / wskazówka Kevina Brydona.

Aliostad
źródło
11
W rzeczywistości najpierw zainstalowałem Visual Studio, a następnie IIS. Obecnie uruchamiam polecenie „aspnet_regiis.exe -i”. Mam nadzieję, że to naprawia błąd.
5
Działało również dla mnie, gdy otrzymałem ten błąd podczas próby uzyskania dostępu do usługi WCF .svc.
atconway,
Uwaga - dla użytkowników systemu Windows 8 inna odpowiedź autorstwa JohnOpincar poniżej
KyleK
+1 Dla każdego, kto znajdzie to za pomocą funkcji wyszukiwania, może być łatwiej wykonać naprawę w instalacji .NET zamiast próbować uruchomić aspnet_regiis.exe jako ścieżkę najmniejszego oporu i rozwiązać problem. Widzimy to często na urządzeniach, które zainstalowały .NET 4.5.2 (za pośrednictwem Windows Update) przed zainstalowaniem roli IIS, jest to trochę frustrujące, ponieważ te pudełka będą wyświetlać .NET 4 jako opcję w swojej puli aplikacji, ale jeśli twoja aplikacja wymaga .NET 4.5, podobnie jak nasza, nie powiedzie się z powyższym komunikatem.
aolszówka
246

W systemie Windows 8/10 musisz użyć

  • Otwórz Panel sterowania →
  • Programy i funkcje →
  • Włącz lub wyłącz funkcje systemu Windows →
  • Internetowe usługi informacyjne (IIS) →
  • Usługi WWW →
  • Funkcje tworzenia aplikacji →
  • Sprawdź odpowiednie elementy, takie jak włączenie ASP.NET. (tj. zainstaluj odpowiednią wersję, z którą chcesz skonfigurować witryny)

Odniesienie: Sprawdź rozwiązanie tego pytania w celach informacyjnych

JohnOpincar
źródło
217
Musiałem sprawdzić .NET Framework 4.5 Advanced Services> WCF Services>HTTP Activation
Kevin Brydon
13
uruchom to polecenie z wiersza polecenia administratora: „DISM / Online / Enable-Feature / FeatureName: WCF-HTTP-Activation / all” lub „DISM / Online / Enable-Feature / FeatureName: WCF-HTTP-Activation45 / all”
Paul Suart
Właśnie kiedy przyzwyczaiłem się do uruchamiania regiis, Microsoft przechodzi i zmienia go ponownie. Przynajmniej jest to o wiele łatwiejsze - podobna zmiana do instalowania WIF. Teraz powinni dodać SQL, aby włączyć / wyłączyć funkcje systemu Windows.
nocarrier
@KevinBrydon - Dziękuję bardzo! Twoja wskazówka była bardzo pomocna w rozwiązaniu problemu w systemie Windows 2012 R2.
Amil Waduwawara
W systemie Windows Server 2012 R2 włączenie dla mnie „Aktywacji HTTP” działało.
Dhanuka777
117

Naprawiłem to na moim systemie Windows 10:

  1. Przejdź do Panelu sterowania - Programy i funkcje - Włącz lub wyłącz funkcje systemu Windows.

  2. Wybierz .NET Framework 4.6 Advanced Services - Usługi WCF

  3. Sprawdź aktywację HTTP.

  4. Ok zrobione.

Quan Nguyen
źródło
5
Działa dla mnie w systemie Windows 10! Dziękuję Ci!
Sergey Malyutin
1
Działa również dla mnie w przypadku wygranej 8.1
Qerts
Pracował nad Win10 iis7
noCodeMonkeys
Działa to po aktualizacji do systemu Windows 1709 i konieczności ponownej instalacji mojego IIS
garrettendi
Idealnie działa dla mnie. Idealne rozwiązanie, jeśli pojawia się komunikat „Ten błąd występuje, gdy rozszerzenie pliku żądanego adresu URL dotyczy typu MIME, który nie jest skonfigurowany na serwerze”
eranda.del
84

W moim przypadku musiałem dodać typy MIME dla każdego rozszerzenia pliku, które chciałem udostępnić do konfiguracji sieci:

<system.webServer>
    <staticContent>
      <mimeMap fileExtension=".shp" mimeType="application/octet-stream" />
      <mimeMap fileExtension=".dbf" mimeType="application/octet-stream" />
      <mimeMap fileExtension=".kml" mimeType="text/xml" />
    </staticContent>
    ...
</system.webServer>
Mahmoodvcs
źródło
2
1+ naprawił mój problem ... próbowałem załadować .jsoni wciąż pojawiał się błąd OP, aż w końcu mimeMapdodałem plik w pliku web.config i rozwiązałem problem
Nick Kahn
Czy muszę również dodać typ MIME dla pliku asmx?
Shilpa Soni,
@ShilpaSoni pliki asmx to pliki serwera asp.net (nie zawartość statyczna). więc nie możesz i nie musisz pobierać ich od klienta.
Mahmoodvcs,
1
A oto mapa rozszerzeń plików do odpowiedniego typu mimeType, znaleziona na podstawie tego SO pytania
The Red Pea
21

Gdyby to pomogło komuś, otrzymałem ten błąd podczas próby uruchomienia aspnet_regiis.exe:

Operacja nie powiodła się z 0x8007000B

Podjęto próbę załadowania programu o niepoprawnym formacie

Jak się okazuje, serwer działał w wersji 64-bitowej 2008 i próbowałem uruchomić 32-bitową wersję narzędzia. Uruchomienie wersji znalezionej w \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 rozwiązało problem.

c:\Windows\Microsoft.NET\Framework64\v2.0.50727>aspnet_regiis.exe -i
Daniel
źródło
7

Właśnie miałem taką samą sytuację z moim klientem. Mamy własny produkt, który instaluje stronę internetową. Instalator konfiguruje wszystko: pulę usług IIS, witrynę, plik web.config itp.

Zainstalowaliśmy inną stronę internetową za pomocą naszego instalatora. Wprowadziliśmy te same parametry, więc pliki web.config były takie same w obu witrynach.

Jednak nowo zainstalowana strona działała dobrze, a stara nie. Następnie otworzyłem 2 okna Menedżera IIS i zacząłem porównywać różnice w ustawieniach strony internetowej. I znalazłem problem.

Ktoś usunął wszystkie mapowania modułu obsługi ze starej strony. Jeśli przejdziesz do „Odwzorowań modułu obsługi”, powinieneś zobaczyć tam aspx, asmx oraz inne rozszerzenia i nazwy programów obsługi. Tak więc na starej stronie brakowało wszystkich tych rekordów.

Proponuję więc najpierw sprawdzić „Odwzorowania modułu obsługi” - musi tam być wiele zapisów. Utwórz nową stronę internetową i porównaj, aby wiedzieć, ile powinno być.

Kto je usunął, osoba lub inny program, nie mam pojęcia. Jeśli ktoś może stwierdzić, czy istnieje aplikacja śledząca, która powiedziałaby, że domena użytkownika \ john modyfikuje stronę internetową w dniu „07.03.2012 12:34”, byłoby to przydatne.

Ihor B.
źródło
Czy mogła to być aktualizacja zabezpieczeń firmy Microsoft ?
Roman Starkov
6

Rozwiązałem problem na serwerze Windows 2012, instalując WSZYSTKIE funkcje WCF.

A) Menedżer serwera> Zarządzaj [link w lewym górnym rogu]> Dodaj role i funkcje

B) W Funkcje> Funkcje .Net Framework 4.5> Usługi WCF

C) Sprawdź (włącz) funkcje. Sprawdziłem wszystko.

D) Zainstaluj

Demodave
źródło
2
Sprawdziłem tylko aktywację HTTP i aktywację TCP i zadziałało to dla mnie. Mimo wszystko dziekuję!
Aleksei Mialkin
6

W systemie Windows Server 2008 R2 64bit i .net Framework 4.5 uruchomiono polecenie z tej lokalizacji i zakończyło się ono pomyślnie:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis -i

wynik:

Microsoft (R) ASP.NET RegIIS version 4.0.30319.0
Administration utility to install and uninstall ASP.NET on the local machine.
Copyright (C) Microsoft Corporation.  All rights reserved.
Start installing ASP.NET (4.0.30319.0).
.....
Finished installing ASP.NET (4.0.30319.0).
Jason Hitchings
źródło
3

Jak wspomniano @Mahmoodvcs, musiałem ustawić / dodać typy MIME dla rozszerzenia pliku, które musiałem bezpośrednio hostować / pobierać, w tym przypadku jest to plik zrzutu Heroku (kopia zapasowa bazy danych Postgres), więc aby ustawić publiczny serwer IIS, w którym możesz pobrać te pliki bez konieczności używania wiadra AWS S3 lub udziałów HTTP, takich jak dropbox, jest to wspaniała opcja!

<staticContent>
  <mimeMap fileExtension=".dump" mimeType="application/octet-stream" />
</staticContent>

d1jhoni1b
źródło
2

Ja również miałem ten błąd, w systemie Windows Server 2008 IIS 7 nie miałem zainstalowanego programu Visual Studio, więc załatwienie / naprawa systemu .NET 4.0 załatwiła sprawę.

Leigh
źródło
1

Aby dodać rozszerzenie do wyświetlania w usługach IIS, wykonaj następujące czynności -

  1. Otwórz Menedżera usług IIS i przejdź do poziomu, którym chcesz zarządzać.
  2. W Widoku funkcji kliknij dwukrotnie Typy MIME.
  3. W okienku Akcje kliknij Dodaj.
  4. W oknie dialogowym Dodaj typ MIME wpisz rozszerzenie nazwy pliku w polu tekstowym Rozszerzenie nazwy pliku. ... Wpisz typ MIME
  5. w polu tekstowym typu MIME.
  6. Kliknij OK.
Shahadat Hossain Khan
źródło
1
Testowałem to rozwiązanie w przypadku .TS (typ skryptach) należy zadeklarować w typie MIME pól maszynopis (.TS) Używam text / x.typescript jako mim wpisać
freedeveloper
0

Sprawdź, czy pula aplikacji w IIS (w przypadku IIS7 lub wyższej) jest wybrana jako zintegrowana. W takim przypadku prawdopodobnie zmiana na Classic może rozwiązać ten problem.

użytkownik1006743
źródło
0

W odniesieniu do Server 2016 powinienem dodać:

  1. Uruchom to polecenie: aspnet_regiis -lvz tego C:\Windows\Microsoft.NET\Framework\v2.0.50727\ katalogu : To daje najlepszy obraz tego, co się dzieje

  2. Na serwerze 2016 instalacja .net i iis poza kolejnością nie wydaje się stanowić problemu.

  3. Bardziej prawdopodobnym problemem na serwerze 2016 jest po prostu to, że asp.net nie jest zainstalowany na komputerze.

Jonesome przywraca Monikę
źródło
0

Dla Windows Server 2016

  1. Server ManagerFormularz otwarty
  2. Manage -> Add Roles and Features
  3. Dalej do Featuresstrony
  4. Sprawdź WCF Servicesfunkcję ze wszystkimi podfunkcjami
  5. Next i Install
Serkan Arslan
źródło
0

PHP 7.3 Aplikacja IIS w systemie Windows Server 2012 R2

To był dla mnie dwuetapowy proces.

1) Włącz usługi WCF - przy ponownym uruchomieniu serwera

2) Dodaj mapowanie modułu FASTCGI

1)

Przejdź do Menedżera serwera> Dodaj role i funkcje Wybierz serwer z puli serwerów Przejdź do Funkcje> Usługi WCF Wybrałem wszystkie kategorie, a następnie zainstalowałem

2)

Przejdź do IIS> wybierz witrynę W środkowym okienku wybierz Mapowania modułu obsługi Prawe okno wybierz Dodaj mapowania modułu

W oknie edycji:

Ścieżka żądania: * .php

Moduł: FastCgimodule

Plik wykonywalny: przejrzałem plik php-cgi.exe w folderze PHP

Nazwa: PHP7.3

Teraz, gdy o tym myślę. Może istnieć sposób na dodanie tego mapowania modułu obsługi do konfiguracji sieci, więc jeśli migrujesz witrynę na inny serwer, nie musisz dodawać tego mapowania w kółko.

EDYCJA: Oto jest. Dodaj to do sekcji web-config.

<add name="PHP-FastCGI" verb="*" 
  path="*.php" 
  modules="FastCgiModule"
  scriptProcessor="c:\php\php-cgi.exe" 
  resourceType="Either" />
Quickee
źródło
0

Jeśli próbujesz wyświetlić plik bez rozszerzenia, działało dla mnie dodanie MIME Type: Rozszerzenie nazwy pliku : . typ MIME :text/plain

Może to mieć pewne konsekwencje dla MVC, szczególnie jeśli Twój program Static File Handlerznajduje się powyżej procedur Extensionless...obsługi (poniżej IIS/ Handler Mappings), ale może to być obejście, gdy potrzebujesz tego tylko tymczasowo, na przykład aktywując Certyfikaty SSL.

Serj Sagan
źródło