Update: Die ursprüngliche Frage betraf Windows Server 2008, die Lösung war jedoch für Windows Server 2008 R2 und Windows Server 2012 (sowie Windows 7 und 8) einfacher. Sie können den Benutzer über die NTFS-Benutzeroberfläche hinzufügen, indem Sie ihn direkt eingeben. Der Name hat das Format IIS APPPOOL \ {Name des App-Pools}. Zum Beispiel: IIS APPPOOL \ DefaultAppPool.
IIS APPPOOL\{app pool name}
Hinweis: Gemäß den Kommentaren unten sind zwei Dinge zu beachten:
- Geben Sie die Zeichenfolge direkt in das Feld "Benutzer oder Gruppe auswählen" und nicht in das Suchfeld ein.
- In einer Domänenumgebung müssen Sie zuerst den Speicherort für Ihren lokalen Computer festlegen.
Verweis auf Microsoft Docs-Artikel: Anwendungspoolidentitäten> Sichern von Ressourcen
Ursprüngliche Antwort: (für Windows Server 2008) Dies ist eine großartige Funktion, aber wie Sie bereits erwähnt haben, ist sie noch nicht vollständig implementiert. Sie können die App-Pool-Identität über die Eingabeaufforderung mit etwas wie icacls hinzufügen und sie dann über die GUI verwalten. Führen Sie beispielsweise Folgendes an der Eingabeaufforderung aus:
icacls c:\inetpub\wwwroot /grant "IIS APPPOOL\DefaultAppPool":(OI)(CI)(RX)
Wechseln Sie dann im Windows Explorer zum Ordner "wwwroot" und bearbeiten Sie die Sicherheitsberechtigungen. Sie sehen, wie eine Gruppe (das Gruppensymbol) mit dem Namen DefaultAppPool aussieht. Sie können jetzt die Berechtigungen bearbeiten.
Sie müssen dies jedoch überhaupt nicht verwenden. Es ist ein Bonus, den Sie verwenden können, wenn Sie möchten. Sie können die alte Methode zum Erstellen eines benutzerdefinierten Benutzers pro App-Pool und zum Zuweisen des benutzerdefinierten Benutzers zur Festplatte verwenden. Das hat volle UI-Unterstützung.
Diese SID-Injektionsmethode ist nützlich, da Sie einen einzelnen Benutzer verwenden können, aber jede Site vollständig voneinander isolieren können, ohne eindeutige Benutzer für jeden App-Pool erstellen zu müssen. Ziemlich beeindruckend, und mit der UI-Unterstützung wird es noch besser.
Hinweis: Wenn Sie den Benutzer des Anwendungspools nicht finden können, überprüfen Sie, ob der Windows-Dienst "Application Host Helper Service" ausgeführt wird. Dieser Dienst ordnet Benutzer des Anwendungspools Windows-Konten zu.
Sie müssen sicherstellen, dass das
From this location
Feld auf dielocal machine
und nicht auf die Domäne eingestellt ist.Ich hatte das gleiche Problem und als ich es änderte, funktionierte es einwandfrei.
quelle
Sie sollten wirklich Gruppen pro "Rolle" erstellen und diese Gruppenzugriffe auf das Dateisystem zuweisen. Fügen Sie dann den App-Pool nach Bedarf zu den rollenspezifischen Gruppen hinzu. Auf diese Weise müssen Sie sich auch dann, wenn Sie den App-Pool später entfernen (und der virtuelle Benutzer wird unfähig ), keine Gedanken mehr über das Wiederherstellen aller Berechtigungen machen. Fügen Sie einfach den Ersatz-App-Pool zur vorhandenen Gruppe hinzu.
quelle
Nach dem Lesen der Antwort von @Scott Forsyth - MVP habe ich versucht, den Application Host Helper Service neu zu starten. Das hat das Problem für mich gelöst.
quelle
Ich habe WS8 R2 ausgeführt und konnte es nicht
IIS APPPOOL\DefaultAppPool
über den Windows Explorer hinzufügen . Die einzige Möglichkeit, wie es funktionierte, war über die Befehlszeile:quelle
Wenn es bei dieser Frage darum geht, wie _sp_send_dbmail in der msdb-Datenbank ausgeführt wird (mithilfe der in msdb gespeicherten SQL-Prozedur "Datenbank-Mail senden"), können Sie hier Abhilfe schaffen. Fügen Sie dem MSDB-Benutzer mit der Rollenmitgliedschaft "DatabaseMailUserRole" den Benutzernamen der .NET-Anwendung Ihrer Datenbank hinzu (der in Ihrer Verbindungszeichenfolge in Ihrer .NET-Anwendung definiert ist)
quelle