Udostępnij za pośrednictwem


Błąd HTTP 500.0 — wewnętrzny błąd serwera podczas otwierania strony internetowej usług IIS

Ten artykuł ułatwia rozwiązanie błędu HTTP 500.0 występującego podczas odwiedzania witryny sieci Web hostowanej w usługach Internet Information Services (IIS).

Oryginalna wersja produktu: Internet Information Services
Oryginalny numer KB: 942031

Podsumowanie

W tym artykule opisano głównie kody HResult w przypadku wystąpienia błędu HTTP 500.0 w aplikacji internetowej usług IIS. W przypadku błędów 500.0 spowodowanych kodem aplikacji internetowej zapoznaj się z sekcją Więcej informacji .

Ten artykuł jest przeznaczony dla administratorów witryn sieci Web. Te błędy mają wiele przyczyn i mogą mieć wpływ na wiele różnych konfiguracji systemu. Procedury opisane w tym artykule muszą być wykonywane przez członka grupy administratorów na serwerze.

Użytkownicy końcowi, którzy napotkają te błędy, powinni powiadomić administratora witryny sieci Web o problemie.

Kod HResult

Komunikat o błędzie HTTP 500.0 wskazuje, że na serwerze sieci Web, który hostuje witrynę internetową w momencie zwrócenia błędu.

Zapoznaj się z poniższymi szczegółami tych błędów.

Kod HResult 0x80070032

Komunikat o błędzie:

Błąd serwera w aplikacji "<nazwa aplikacji>"
Błąd HTTP 500.0 — wewnętrzny błąd serwera
HRESULT: 0x80070032
Opis filtru HRESULT ISAPI drive:\FilePath\ISAPI_FLT.dll próbował zarejestrować się w SF_NOTIFY_READ_RAW_DATA w celu powiadomienia.

Przyczyna

Ten problem występuje, ponieważ usługi IIS nie obsługują filtru internetowego interfejsu API (ISAPI), który rejestruje się na potrzeby SF_NOTIFY_READ_RAW_DATA powiadomienia.

Rozwiązanie

Nie używaj filtru ISAPI, który rejestruje się w celu SF_NOTIFY_READ_RAW_DATA powiadomienia w usługach IIS.

Kod HResult 0x80070035

Komunikat o błędzie:

Błąd serwera w aplikacji "<applicationName>"
Błąd HTTP 500.0 — wewnętrzny błąd serwera
HRESULT: 0x80070035
Opis HRESULT Nie można wyświetlić strony, ponieważ wystąpił wewnętrzny błąd serwera.

Przyczyna

Ten problem występuje, ponieważ serwer z uruchomionymi usługami IIS nie może uzyskać dostępu do skonfigurowanego katalogu głównego żądanej lokalizacji.

Rozwiązanie

Upewnij się, że serwer z uruchomionymi usługami IIS może uzyskać dostęp do skonfigurowanego katalogu głównego żądanej lokalizacji.

Kod HResult 0x8007000d

Komunikat o błędzie:

Błąd serwera w aplikacji "<nazwa aplikacji>"
Błąd HTTP 500.0 — wewnętrzny błąd serwera
HRESULT: 0x8007000d
Opis procedury obsługi HRESULT "ASPClassic" zawiera nieprawidłowy moduł "IsapiModule" na liście modułów.

Przyczyna

Ten problem występuje, ponieważ brakuje modułu ISAPIModule z listy modułów dla witryny sieci Web. Moduł ISAPIModule znajduje się w tej lokalizacji: drive:\Windows\System32\inetsrv\isapi.dll.

Rozwiązanie

Aby dodać moduł ISAPIModule do listy modułów dla witryny sieci Web, wykonaj następujące kroki:

  1. Wybierz pozycję Uruchom,> wpisz inetmgr.exe, a następnie wybierz przycisk OK.
  2. W Menedżerze usług IIS rozwiń węzeł <Nazwa>>serwera Witryny sieci Web, a następnie wybierz witrynę sieci Web, którą chcesz zmodyfikować.
  3. W widoku Funkcje kliknij dwukrotnie pozycję Moduł.
  4. W okienku Akcje wybierz pozycję Dodaj moduł macierzysty.
  5. W oknie dialogowym Dodawanie modułu natywnego zaznacz pole wyboru IsapiModule, a następnie wybierz przycisk OK.

Kod HResult 0x800700c1

Komunikat o błędzie:

Błąd serwera w aplikacji "<nazwa aplikacji>"
Błąd HTTP 500.0 — wewnętrzny błąd serwera
HRESULT: 0x800700c1
Opis HRESULT Nie można wyświetlić strony, ponieważ wystąpił wewnętrzny błąd serwera.

Przyczyna

Ten problem występuje, ponieważ mapowanie skryptu jest nieprawidłowe.

Rozwiązanie

Aby upewnić się, że skrypt-mapowanie wskazuje plik ISAPI.dll , który może przetworzyć żądanie, wykonaj następujące kroki:

  1. Wybierz pozycję Uruchom,> wpisz inetmgr.exe, a następnie wybierz przycisk OK.

  2. W Menedżerze usług IIS rozwiń węzeł <Nazwa>>serwera Witryny sieci Web, a następnie wybierz witrynę sieci Web, którą chcesz zmodyfikować.

  3. W widoku Funkcje kliknij dwukrotnie pozycję Mapowania obsługi.

  4. Upewnij się, że mapowanie skryptu wskazuje poprawny plik ISAPI.dll.

    Na przykład pliki .asp powinny być mapowane na pliku %windir%\system32\inetsrv\asp.dll.

Kod HResult 0x80070005

Komunikat o błędzie:

Błąd serwera w aplikacji "<nazwa aplikacji>"
Błąd HTTP 500.0 — wewnętrzny błąd serwera
HRESULT: 0x80070005
Opis wyniku HRESULT LoadLibraryEx w filtrze ISAPI "path_of_isapi" nie powiodło się.

Przyczyna

Ten problem występuje, ponieważ filtr ISAPI, który nie jest prawidłowy, jest ładowany na poziomie globalnym lub na poziomie witryny sieci Web.

Rozwiązanie

Aby usunąć nieprawidłowy filtr ISAPI, wykonaj następujące kroki:

  1. Wybierz pozycję Uruchom,> wpisz inetmgr.exe, a następnie wybierz przycisk OK.
  2. W Menedżerze usług IIS rozwiń węzeł <Nazwa>>serwera Witryny sieci Web, a następnie wybierz witrynę sieci Web, którą chcesz zmodyfikować.
  3. W widoku Funkcje kliknij dwukrotnie pozycję Filtry ISAPI.
  4. Kliknij prawym przyciskiem myszy filtr ISAPI, który chcesz usunąć, a następnie wybierz polecenie Usuń.

Kod HResult 0x8007007f

Istnieją dwie możliwości wystąpienia błędu HResult 0x8007007f:

Komunikat o błędzie 1

Błąd serwera w aplikacji "<nazwa aplikacji>"
Błąd HTTP 500.0 — wewnętrzny błąd serwera
HRESULT: 0x8007007f
Opis wywołania HRESULT GetProcAddress w filtrze ISAPI "path_of_isapi" nie powiodło się.

Przyczyna

Ten problem występuje, ponieważ filtr ISAPI, który nie jest prawidłowy, jest ładowany na poziomie globalnym lub na poziomie witryny sieci Web.

Rozwiązanie

Aby usunąć nieprawidłowy filtr ISAPI, wykonaj następujące kroki:

  1. Wybierz pozycję Uruchom,> wpisz inetmgr.exe, a następnie wybierz przycisk OK.
  2. W Menedżerze usług IIS rozwiń węzeł <Nazwa>>serwera Witryny sieci Web, a następnie wybierz witrynę sieci Web, którą chcesz zmodyfikować.
  3. W widoku Funkcje kliknij dwukrotnie pozycję Filtry ISAPI.
  4. Kliknij prawym przyciskiem myszy filtr ISAPI, który chcesz usunąć, a następnie wybierz polecenie Usuń.

Komunikat o błędzie 2

Błąd serwera w aplikacji "<nazwa aplikacji>"
Błąd HTTP 500.0 — wewnętrzny błąd serwera
HRESULT: 0x8007007f
Opis błędu HRESULT Wystąpił problem z zasobem, którego szukasz, dlatego nie można go wyświetlić.

Przyczyna

Ten problem występuje, ponieważ mapowanie programu obsługi dla żądanego zasobu wskazuje plik .dll , który nie może przetworzyć żądania.

Rozwiązanie

Aby wykonać mapowanie programu obsługi dla żądanego zasobu, wskaż plik .dll , który może przetworzyć żądanie, wykonaj następujące kroki:

  1. Wybierz pozycję Uruchom,> wpisz inetmgr.exe, a następnie wybierz przycisk OK.

  2. W Menedżerze usług IIS rozwiń węzeł <Nazwa>>serwera Witryny sieci Web, a następnie wybierz witrynę sieci Web, którą chcesz zmodyfikować.

  3. W widoku Funkcje kliknij dwukrotnie pozycję Mapowania obsługi.

  4. Kliknij prawym przyciskiem myszy mapowanie skryptu, które chcesz edytować, a następnie wybierz polecenie Edytuj.

  5. W oknie dialogowym Edytowanie mapy skryptu wpisz odpowiedni plik wykonywalny w polu Wykonywalny, a następnie wybierz przycisk OK.

    Na przykład pliki .asp powinny być mapowane na pliku %windir%\system32\inetsrv\asp.dll.

Więcej informacji

Jeśli kod aplikacji internetowej zgłasza wyjątek i jest przechwycony przez środowisko uruchomieniowe aplikacji (na przykład środowisko uruchomieniowe ASP.NET), może zostać również wyświetlony błąd HTTP 500.0 w odpowiedzi internetowej. W przypadku dowolnego wyjątku zgłaszanego z kodu aplikacji internetowej sprawdź dziennik zdarzeń aplikacji lub własny niestandardowy dziennik aplikacji dla typu wyjątku, komunikatu wyjątku i stosu wywołań wyjątków.

Jeśli potrzebne jest dalsze debugowanie, użyj najnowszej wersji narzędzia DebugDiag, aby przechwycić zrzuty wyjątków pierwszej szansy.