Ich versuche, in IIS 8 (Windows 2012) ein Domänenbenutzerkonto als Anwendungspoolidentität einzurichten. Wenn ich dies über die IIS-Verwaltungskonsole versuche, erhalte ich immer eine Fehlermeldung:
Der Wert liegt nicht im erwarteten Bereich.
Beim Versuch, die Identität mit appcmd.exe festzulegen, schlägt sowohl der Befehl zum Festlegen des Benutzernamens und des Kennworts als auch der Befehl zum Festlegen nur des Kennworts fehl. Das Festlegen des Benutzernamens ist kein Problem.
Versuch, sowohl den Benutzernamen als auch das Passwort festzulegen [FEHLER]:
>appcmd set config /section:applicationPools /[name='AppPoolName'].processModel.identityType:SpecificUser /[name='AppPoolName'].processModel.userName:DOMAIN\Username /[name='AppPoolName'].processModel.password:P4ssW0rd
Applied configuration changes to section "system.applicationHost/applicationPools" for "MACHINE/WEBROOT/APPHOST" at configuration commit path "MACHINE/WEBROOT/APPHOST"
ERROR ( hresult:80070057, message:Failed to commit configuration changes. The parameter is incorrect. )
Versuch, nur den Benutzernamen festzulegen [ERFOLGREICH]:
>appcmd set config /section:applicationPools /[name='AppPoolName'].processModel.identityType:SpecificUser /[name='AppPoolName'].processModel.userName:DOMAIN\Username
Applied configuration changes to section "system.applicationHost/applicationPools" for "MACHINE/WEBROOT/APPHOST" at configuration commit path "MACHINE/WEBROOT/APPHOST"
Versuch, das Passwort festzulegen, nachdem der Benutzername erfolgreich festgelegt wurde [FEHLER]:
>appcmd set config /section:applicationPools /[name='AppPoolName'].processModel.identityType:SpecificUser /[name='AppPoolName'].processModel.password:P4ssW0rd
Applied configuration changes to section "system.applicationHost/applicationPools" for "MACHINE/WEBROOT/APPHOST" at configuration commit path "MACHINE/WEBROOT/APPHOST"
ERROR ( hresult:80070057, message:Failed to commit configuration changes. The parameter is incorrect. )
Ich habe den Domänenbenutzer zur Gruppe IIS_IUSRS hinzugefügt und ihm die „Anmeldung als Dienst“ gestattet.
Irgendwelche Vorschläge, was ich falsch machen könnte?
Antwort1
GemäßWie richten Sie eine IIS-Web-App ein, damit sie ohne AD auf eine Netzwerkfreigabe zugreifen kann?
Ich hatte das gleiche Problem, konnte das Passwort aber nicht im Klartext anzeigen, also habe ich ein wenig weiter gegraben und diesen Artikel gefunden: Benutzerdefinierte IIS-App-Pool-Identität: Der Wert liegt nicht im erwarteten Bereich
Der wichtigste Schritt zur Diagnose besteht darin, die richtigen Ereignisse zu berücksichtigen:
Um herauszufinden, wie ich das Problem lösen kann, habe ich die Ereignisanzeige aufgerufen. Das Anwendungsprotokoll enthielt nichts, also bin ich zu Anwendungs- und Dienstprotokolle => Microsoft => Windows => IIS-Konfiguration gegangen. Die Protokolle hier sind standardmäßig deaktiviert und müssen daher aktiviert werden. (Klicken Sie dazu mit der rechten Maustaste auf das Protokoll und wählen Sie „Protokoll aktivieren“.) Führen Sie nach der Aktivierung den Versuch zum Festlegen der Identität erneut aus und aktualisieren Sie die Ansicht (Aktionsbereich oder F5). Und voilà! Jetzt haben wir weitere Informationen zum Fehler. In den Ergebnissen waren zwei Fehler (Ereignis-ID 42 und 43).
Ich hatte die gleichen Ereignisfehler wie im Artikel:
ID 42: Der Verschlüsselungsanbieter „IISWASOnlyAesProvider“ in „\?\C:\windows\system32\inetsrv\config\applicationHost.config“ konnte nicht initialisiert werden. Bitte überprüfen Sie Ihre Konfiguration.
ID 43: Das Attribut „Microsoft.ApplicationHost.AesProtectedConfigurationProvider“ konnte nicht verschlüsselt werden.
Dann habe ich folgendes gemacht:
- eine alte Version der Datei ConfigEncKey.key wiederherstellen (auf
c:\windows\System32\inetsrv\config
) - Ersetzen Sie den
<configProtectedData><providers>
Abschnitt durch einen alten (inc:\windows\System32\inetsrv\config\applicationHost.config
)
Dann kann ich dem Anwendungspool erneut eine benutzerdefinierte Identität zuweisen.
Antwort2
Sie können den privaten Schlüssel von einem anderen Server abrufen und ihn einfach in diesen Server importieren, indem Sie zuerst einen Schlüssel von einem anderen funktionierenden IIS-Server exportieren: C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis -px "iisWasKey" "C:\temp\AESKeys.xml" -pri
Zweitens können Sie diesen Schlüssel auf der defekten Maschine wiederherstellen (kopieren Sie den Schlüssel auf den anderen Server und legen Sie ihn an derselben Stelle ab): C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis -pi "iisWasKey" "C:\temp\AESKeys.xml"
Drittens bearbeiten Sie c:\windows\system32\inetsrv\applicationhost.config und verwenden den Abschnitt „configprotecteddata“ des bekannten funktionierenden Servers anstelle des Abschnitts, der sich bereits in dieser Datei befindet.
Der Abschnitt würde dann etwa wie folgt aussehen:
Wenn alles gut geht, können Sie es testen, indem Sie einen Anwendungspool erstellen, dann zu den erweiterten Einstellungen gehen und es als DOMAIN\Benutzer oder einem anderen erforderlichen Benutzer ausführen.
Tony Trus
Antwort3
Überprüfen Sie die Bindungen für die Anwendungen, die in diesem Anwendungspool konfiguriert sind, auf falsche Bindungen, z. B. ungültige Zeichen, Leerzeichen usw.
Antwort4
Versuchen Sie, das Ende /section:applicationPools
zu ändern /section:system.applicationHost/applicationPools
und hinzuzufügen/commit:apphost
appcmd set config /section:system.applicationHost/applicationPools /[name='AppPoolName'].processModel.identityType:SpecificUser /[name='AppPoolName'].processModel.password:P4ssW0rd /commit:apphost