2017-04-04 1 views
1
hinzugefügt wurde.

Ich versuche, eine ASP.NET-Anwendung mithilfe von Powershell (ausgeführt von Ansible) auf IIS bereitzustellen.Stellen Sie sicher, dass der IIS AppPool-Benutzer der Windows-Gruppe

Ich möchte meine Anwendung in der Lage sein, die Leistungsindikatoren abfragen, damit ich es zu den Performance Monitor Benutzer am Hinzufügen dieses Skript mit Powershell:

appPoolName=$args[0] 

$group = [ADSI]"WinNT://$Env:ComputerName/Performance Monitor Users,group" 

$ntAccount = New-Object System.Security.Principal.NTAccount("IIS AppPool\$appPoolName") 
$strSID = $ntAccount.Translate([System.Security.Principal.SecurityIdentifier]) 
$user = [ADSI]"WinNT://$strSID" 

$group.Add($user.Path) 

Es kommt eigentlich aus einer anderen SO Frage: Add IIS AppPool\ASP.NET v4.0 to local windows group.

Nach der Bereitstellung kann es vorkommen, dass der Benutzer der Gruppe hinzugefügt wird, die Anwendung jedoch weiterhin nicht auf die Leistungsindikatoren zugreifen kann.

Das Skript wird ausgeführt, kurz bevor der App Pool und die Anwendung gestartet werden. Ich habe folgende Dinge ausprobiert, ohne Erfolg:

ich mein Bereitstellungsskripts in dem modifizierten folgende Möglichkeiten, ohne Erfolg:

  • Entfernen Sie den Benutzer aus der Gruppe, bevor Sie ihn hinzufügen
  • Starten Sie den App Pool nach dem Hinzufügen des Benutzers neu. IIS beschwert sich tatsächlich ("Der Dienst kann zu diesem Zeitpunkt keine Nachrichten annehmen").
  • den Benutzer zur Gruppe hinzufügen nach
  • Fügen Sie den Benutzer der Gruppe zu Beginn des deploy Starten der Anwendung (vor der Anwendung und Pool Anhalten)

Der einzige Weg, ich meine zu lösen haben Problem ist, die Maschine neu zu starten. Ich würde gerne wissen, ob es eine bessere gibt!

Wenn es möglich ist, würde ich das Problem lösen, wenn ich den App Pool Benutzer abmelden und wieder einschalten würde. Ich habe nicht gefunden, wie das geht (Neustart oder Recycling des App-Pools funktioniert nicht).

Antwort

0

Die Antwort war eine einfache iisreset (in der Befehlszeile oder Powershell).

Verwandte Themen