IIS 6 FastCGI-Fehler 1413 (0x80070585) behoben

Inhaltsverzeichnis

 

1. Vorwort Inhalt

Um CGI-Programme möglichst schnell ohne Prozess-Erstellungs-Penalty unter Windows Server laufen lassen zu können, müssen diese CGI-Programme vom Worker-Process im Speicher gehalten werden; dieses läßt sich mit der FastCGI-Erweiterung für IIS 6 (x86 und x64) realisieren.

Leider geschehen manchmal auch unvorhergesehene Dinge und kryptische Fehlercodes ohne verständliche Erklärung sind dabei an der Tagesordnung.

Nachdam ich zwei Tage verbraten habe, einem 0x80070585 Fehler vom FastCGI auf den Grund zu gehen und endlich durch Mithilfe (englisch) eines erfahrenen Forumsteilnehmers eine Lösung gefunden habe, möchte ich sie hier in der Hoffnung, dass sie noch jemandem hilft, veröffentlichen.

2. Fehlermeldung Inhalt

Es erscheint beim Aufruf einer von FastCGI gecachten Anwendung (PHP, Perl, etc) die folgende Fehlermeldung:

2.0.1 FastCGI Error Inhalt

The FastCGI Handler was unable to process the request.

Error Details:

  • Could not find entry for „php“ on site 7640 in [Types] section.
  • Error Number: 1413 (0x80070585).
  • Error Description: Invalid index.

HTTP Error 500 – Server Error.
Internet Information Services (IIS)

oder auf deutsch:

2.0.2 FastCGI Fehler Inhalt

Der FastCGI Handler konnte die Anfrage nicht verarbeiten.

Fehlerdetails:

  • Konnte keinen Eintrag für „php“ von Site 1 in der [Types] Sektion finden.
  • Fehlernummer: 1413 (0x80070585).
  • Fehlerbeschreibung: Ungültiger Index.

HTTP Fehler 500 – Server Fehler.
Internet Information Services (IIS)

3. Symptome Inhalt

Voraussetzung ist die Verwendung eines 64-Bit Betriebssystems, nur dort ist die folgende Beschreibung anwendbar.

  • Nach Installation von FastCGI auf einer x64 Windows-Server Version erzeugt die Erweiterung FastCGI auch nach Anpassen der %WINDIR%\System32\inetsrv\fastcgi.ini die obige Fehlermeldung.
  • Im Verzeichnis %WINDIR%\System32\inetsrv\ wird die Datei „fcgiconfig.js“ nicht gefunden, es existiert nur „fcgiext.dll“.
  • Wenn Sie von Hand eine „fcgiext.ini“ in obigem Verzeichnis anlegen, so wird diese mit gleichem Inhalt in %WINDIR%\SysWOW64\inetsrv\ erstellt.
  • Die Webserviceerweiterung ist sicher freigegeben in der Administrationsoberfläche des IIS.
  • Das Scriptmapping lautet ganz sicher auf %WINDIR%\System32\inetsrv\fastcgi.dll in der entsprechenden Website.

4. Weitere Prüfungsmöglichkeiten Inhalt

Laden Sie sich Process Monitor für Ihr Betriebssystem herunter, führen es aus und filtern alle Ergebnisse mittels „Path“-> „contains“ -> „fcgi“. Es sollten jetzt nur noch Zugriffe auf die DLL und die INI-Datei im Fenster erscheinen. Wenn Sie mit dem Webbrowser nun häufig die gewünschte Datei annavigieren (z.B. eine test.php mit nur einem phpinfo(); Aufruf), sollte irgendwann im Process Monitor der Zugriff auf die INI-Datei zu sehen sein.

Der Pfad wird wohl %WINDIR%\System32\inetsrv\fastcgi.ini lauten.

Öffnen Sie diese Datei nun mit Ihrem Text-Editor. Im Process Monitor werden Sie auch das mitverfolgen können, nur diesmal mit höchstwahrscheinlich einem anderen Pfad, nämlich %WINDIR%\SysWOW64\inetsrv\fastcgi.ini, und das, obwohl Sie doch die obere Datei angelegt/bearbeitet haben, mit dem korrekten Pfad!?!

5. Lösung Inhalt

Es ist so banal, dass es eigentlich schon wehtut. Sehr sicher haben Sie zum Verzeichnis-Anschauen oder Ini-Datei-Erstellen einen 32bit Editor verwendet, wie z.B. Total Commander mit integriertem Editor. Es findet in diesem Falle eine sogenannte Verzeichnisumleitung statt, d.h. 32Bit-Anwendungen sehen als „ihr“ System32-Verzeichnis genau den Inhalt des SysWOW64-Ordners, aber eben unter dem falschen Namen.

Klar, die FastCGI-Extension ist ja 64-Bit und öffnet die richtige, von MS ausgelieferte Datei; Ihr Texteditor aber sieht die falsche, eigentlich in SysWOW64 liegende Datei.

Öffnen Sie die Datei einfach mit einem 64-Bit Editor und schon sollte alles passen. Sie werden sogar das config.js File an seinem Platz finden, so wie es sein soll 😉

Bislang keine Kommentare vorhanden.

Einen Kommentar hinterlassen