Webservice zeigt Fehler 401.3 — Kurzanleitung
Für: Administratoren und Support-Mitarbeiter ohne Entwicklungshintergrund Zeitaufwand: ca. 10 Minuten Benötigt: Administratorrechte auf dem Webserver
Woran erkenne ich dieses Problem?
Im Browser erscheint eine Fehlerseite mit dieser Meldung:
HTTP-Fehler 401.3 – Unauthorized Die von Ihnen angegebenen Anmeldeinformationen berechtigen Sie nicht, dieses Verzeichnis bzw. diese Seite anzuzeigen (Zugriff aufgrund von Zugriffssteuerungslisten verweigert).
Darunter steht ein Dateipfad, zum Beispiel:
D:\_ApplicationData\...\LCService\Legacy\MainService.asmx
Typisches Zusatzmerkmal: Andere Adressen derselben Anwendung — solche, die auf .svc enden — funktionieren einwandfrei. Nur die auf .asmx endenden Adressen scheitern.
Was ist die Ursache?
Kurz gesagt: Auf einem Ordner fehlt eine Berechtigung.
Wenn jemand eine Webseite aufruft, ohne sich anzumelden, behandelt der Webserver diesen Zugriff unter einem internen Standardbenutzer namens IUSR. Damit die Seite ausgeliefert werden kann, muss dieser Benutzer den Ordner lesen dürfen.
Meist erben Unterordner ihre Berechtigungen automatisch vom übergeordneten Ordner. Bei einer Migration, einem Backup-Restore oder beim Kopieren von einem anderen Server kann diese Vererbung verloren gehen. Dann fehlt in genau diesem einen Ordner die Berechtigung — und nur die Seiten darin melden den Fehler.
Lösung — Schritt für Schritt
Schritt 1: Den betroffenen Ordner öffnen
Den Pfad aus der Fehlermeldung kopieren, aber ohne den Dateinamen am Ende.
Beispiel:
|
Aus der Fehlermeldung |
Benötigter Ordner |
|---|---|
|
|
|
Diesen Ordnerpfad im Windows Explorer in die Adressleiste einfügen und Enter drücken.
Schritt 2: Berechtigungen öffnen
-
Mit der rechten Maustaste auf den Ordner klicken
-
Eigenschaften wählen
-
Auf den Reiter Sicherheit wechseln
Oben in der Liste stehen alle Benutzer und Gruppen, die auf diesen Ordner zugreifen dürfen.
Schritt 3: Prüfen, ob der Eintrag fehlt
In der Liste nach diesen beiden Einträgen suchen:
-
IIS_IUSRS
-
IUSR
Sind beide vorhanden? Dann liegt die Ursache woanders — bitte an die Entwicklung weitergeben.
Fehlt mindestens einer? Weiter mit Schritt 4.
Zum Vergleich: Es hilft, denselben Dialog beim übergeordneten Ordner zu öffnen. Dort sind die Einträge in der Regel vorhanden — das bestätigt, dass die Vererbung im Unterordner unterbrochen wurde.
Schritt 4: Berechtigung hinzufügen
-
Auf Bearbeiten klicken
-
Auf Hinzufügen klicken
-
In das Eingabefeld
IIS_IUSRSeintippen -
Auf Namen überprüfen klicken — der Text sollte sich in eine unterstrichene Form ändern
-
Mit OK bestätigen
-
Der neue Eintrag ist jetzt markiert. Unten in der Spalte Zulassen sicherstellen, dass Häkchen bei Lesen, Ausführen, Ordnerinhalt anzeigen und Lesen gesetzt sind
-
Die Schritte 2 bis 6 für den Eintrag
IUSRwiederholen -
Alle Fenster mit OK schließen
Wichtig: Kein Häkchen bei Schreiben oder Vollzugriff setzen. Lesen genügt vollständig.
Schritt 5: Testen
Die Adresse erneut im Browser aufrufen. In der Regel wirkt die Änderung sofort.
Falls nicht: Im Internetinformationsdienste-Manager (IIS) links die betroffene Website auswählen und rechts unter Website verwalten auf Neu starten klicken.
Wenn es weiterhin nicht funktioniert
Es gibt eine schnelle Ausweichlösung. Bitte vorher mit der Entwicklung oder IT-Leitung abstimmen — siehe Hinweis unten.
-
IIS-Manager öffnen
-
Links die betroffene Website bzw. Anwendung auswählen
-
In der Mitte auf Authentifizierung doppelklicken
-
Die Zeile Anonyme Authentifizierung markieren
-
Rechts auf Bearbeiten klicken
-
Von Bestimmter Benutzer: IUSR auf Identität des Anwendungspools umstellen
-
Mit OK bestätigen
Damit greift der Webserver mit dem Konto zu, unter dem die Anwendung ohnehin läuft — und dieses Konto hat die nötigen Rechte in der Regel bereits.
Warum nur als Ausweichlösung? Bei dieser Einstellung werden auch anonyme, nicht angemeldete Zugriffe mit den vollen Rechten des Dienstkontos ausgeführt. Das Dienstkonto hat oft weitreichende Berechtigungen im Netzwerk und auf Datenbanken. Sicherheitstechnisch ist die Berechtigung auf dem Ordner (Schritte 1–5) daher klar die bessere Lösung.
Kurzfassung zum Weitergeben
Fehler 401.3 auf einer
.asmx-Adresse bedeutet fast immer: Dem Ordner, in dem die Datei liegt, fehlen die Leserechte für IIS_IUSRS und IUSR. Ordner-Eigenschaften → Sicherheit → beide Einträge mit Leserechten hinzufügen. Der Ordnerpfad steht in der Fehlermeldung.
Vorbeugen
Damit das Problem nicht wiederkehrt:
-
Nach jedem Umzug, Restore oder Kopieren von Anwendungsdateien die Berechtigungen der Unterordner stichprobenartig prüfen
-
Nach einem Deployment nicht nur eine Adresse testen, sondern jeweils eine
.svc- und eine.asmx-Adresse — eine funktionierende.svc-Adresse sagt nichts über die.asmx-Adressen aus -
Berechtigungen möglichst am obersten Anwendungsordner setzen und vererben lassen, statt einzelne Unterordner separat zu pflegen