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

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

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

Podsumowanie

W tym artykule opisano kody HResult w przypadku wystąpienia błędu 500.0 w aplikacji internetowej Internet Information Services (IIS). 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 doświadczają tych błędów, powinni powiadomić administratora witryny sieci Web o problemie.

Kod HResult

Komunikat o błędzie HTTP 500 wskazuje, że wystąpił problem na serwerze sieci Web hostującym witrynę sieci Web w momencie zwrócenia błędu.

Poniżej przedstawiono szczegóły 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 7.0 nie obsługują filtru interfejsu API serwera internetowego (ISAPI), który rejestruje się w SF_NOTIFY_READ_RAW_DATA w celu powiadomienia.

Rozwiązanie

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

Kod HResult 0x80070035

Komunikat o błędzie:

Błąd serwera w aplikacji "nazwa aplikacji"
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 uruchomioną usługą IIS 7.0 nie może uzyskać dostępu do skonfigurowanego katalogu głównego żądanej lokalizacji.

Rozwiązanie

Upewnij się, że serwer z uruchomioną usługą IIS 7.0 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 na liście modułów witryny sieci Web. Moduł ISAPIModule znajduje się w tej lokalizacji: drive:\Windows\System32\inetsrv\isapi.dll.

Rozwiązanie

Dodaj moduł ISAPIModule do listy modułów witryny sieci Web. Aby to zrobić, wykonaj następujące kroki.

  1. Kliknij przycisk Start, wybierz polecenie Uruchom, wpisz inetmgr.exe, a następnie kliknij przycisk OK.
  2. W Menedżerze usług IIS rozwiń <nazwę> serwera, rozwiń węzeł Witryny sieci Web, a następnie kliknij witrynę sieci Web, którą chcesz zmodyfikować.
  3. W widoku Funkcje kliknij dwukrotnie pozycję Moduł.
  4. Kliknij pozycję Dodaj moduł natywny w okienku Akcje.
  5. W oknie dialogowym Dodawanie modułu natywnego kliknij, aby zaznaczyć pole wyboru IsapiModule, a następnie kliknij 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

Upewnij się, że mapowanie skryptu wskazuje na plik ISAPI.dll, który może przetworzyć żądanie. Aby to zrobić, wykonaj następujące kroki.

  1. Kliknij przycisk Start, wybierz polecenie Uruchom, wpisz inetmgr.exe, a następnie kliknij przycisk OK.
  2. W Menedżerze usług IIS rozwiń <nazwę> serwera, rozwiń węzeł Witryny sieci Web, a następnie kliknij 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ż nieprawidłowy filtr ISAPI jest ładowany na poziomie globalnym lub na poziomie witryny sieci Web.

Rozwiązanie

Usuń nieprawidłowy filtr ISAPI. Aby to zrobić, wykonaj następujące kroki.

  1. Kliknij przycisk Start, wybierz polecenie Uruchom, wpisz inetmgr.exe, a następnie kliknij przycisk OK.
  2. W Menedżerze usług IIS rozwiń <nazwę> serwera, rozwiń węzeł Witryny sieci Web, a następnie kliknij 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 kliknij 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ż nieprawidłowy filtr ISAPI jest ładowany na poziomie globalnym lub na poziomie witryny sieci Web.

    Rozwiązanie

    Aby rozwiązać ten problem, usuń nieprawidłowy filtr ISAPI. Aby to zrobić, wykonaj następujące kroki.

    1. Kliknij przycisk Start, wybierz polecenie Uruchom, wpisz inetmgr.exe, a następnie kliknij przycisk OK.
    2. W Menedżerze usług IIS rozwiń <nazwę> serwera, rozwiń węzeł Witryny sieci Web, a następnie kliknij 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 kliknij 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 procedury obsługi żądanego zasobu wskazuje na plik .dll, który nie może przetworzyć żądania.

    Rozwiązanie

    Aby rozwiązać ten problem, edytuj mapowanie procedury obsługi dla żądanego zasobu, aby wskazać plik .dll, który może przetworzyć żądanie. Aby to zrobić, wykonaj następujące kroki.

    1. Kliknij przycisk Start, wybierz polecenie Uruchom, wpisz inetmgr.exe, a następnie kliknij przycisk OK.
    2. W Menedżerze usług IIS rozwiń <nazwę> serwera, rozwiń węzeł Witryny sieci Web, a następnie kliknij 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óry chcesz edytować, a następnie kliknij polecenie Edytuj.
    5. W oknie dialogowym Edytowanie mapy skryptu podaj odpowiedni plik wykonywalny w polu Plik wykonywalny, a następnie kliknij przycisk OK.
      Na przykład pliki .asp powinny być mapowane na pliku %windir%\system32\inetsrv\asp.dll.

Więcej informacji

Aby uzyskać wyjątek zgłoszony z kodu aplikacji internetowej, sprawdź dziennik zdarzeń aplikacji lub własny dziennik aplikacji, aby uzyskać informacje o typie wyjątku, komunikacie wyjątku i stosie wywołań wyjątków. Jeśli potrzebne jest dalsze debugowanie, użyj najnowszej wersji DebugDiag, aby przechwycić zrzuty wyjątku pierwszej szansy.