Lektion 3: Konfigurieren des Auftragsdiensts mit Windows PowerShell
Veranschlagte Zeit: 20 Minuten
Lernziel: Veranschaulichen der Verwendung der Microsoft AppFabric 1.1 für Windows Server-Cmdlets zum Konfigurieren von Anwendungen.
Zweck: Die AppFabric-Cmdlets für Windows PowerShell stellen ein nützliches Tool dar, das Entwickler und Administratoren zum Automatisieren der Konfiguration und Verwaltung von Anwendungen verwenden können, die WCF- und/oder WF-Dienste enthalten. In dieser Übungseinheit werden Überwachung und Persistenz für die Order Service-Anwendung neu konfiguriert.
Voraussetzungen
Beachten Sie die folgenden Anforderungen, bevor Sie mit dieser Übungseinheit beginnen:
Die Windows PowerShell-Sitzung muss, wie in Lektion 1: Erste Schritte in AppFabric-Cmdlets für Windows PowerShell dokumentiert, eingerichtet sein.
Sie müssen die Auftragsdienstanwendung, wie in Lektion 2: Bereitstellen des Auftragsdiensts mit Windows PowerShell dokumentiert, bereitgestellt haben.
Verfahren
Sie müssen die folgenden Verfahren durcharbeiten, um die Order Service-Anwendung mit Windows PowerShell neu zu konfigurieren:
Erstellen und Initialisieren von Überwachungs- und Persistenzspeicher für die Anwendung.
Erstellen der Verbindungszeichenfolgen für den Speicher.
Konfigurieren des OrderWorkflow-Diensts für die Order Service-Anwendung zum Verwenden des neuen Überwachungs- und Persistenzspeichers.
Aktivieren des „net.pipe“-Protokolls für die Anwendung.
Erstellen und Initialisieren von Überwachungs- und Persistenzdatenbank
In diesem Abschnitt erstellen und initialisieren Sie einen neuen Überwachungsspeicher und einen neuen Persistenzspeicher zur Verwendung mit der Order Service-Anwendung.
Erstellen und Initialisieren des Überwachungsspeichers
Führen Sie in der Windows PowerShell den folgenden Befehl aus:
Initialize-ASMonitoringSqlDatabase -Database "OrderService_PS" -Admins "AS_Administrators","NT AUTHORITY\LOCAL SERVICE" -Readers "AS_Observers" -Writers "BUILTIN\IIS_IUSRS" | fl *
Beachten Sie, dass der von Ihnen vergebene Überwachungsspeichername ein Suffix „_PS“ aufweist, das anzeigt, dass Sie diesen Vorgang mit Windows PowerShell ausgeführt haben. Dies geschieht, um Benennungskonflikte mit dem Lernprogramm für die Benutzeroberfläche zu vermeiden.
Die für den Speicher festgelegten Berechtigungen basieren auf den Standardberechtigungen und -prinzipalnamen von AppFabric .
Im vorhergehenden Befehl wurde das resultierende Speicherobjekt an das fl-Alias für das Format-List-Cmdlet der Windows PowerShell umgeleitet. Das Ergebnis des Vorgangs kann leichter im Listenformat als im standardmäßigen Tabellenformat dargestellt werden, da die Ergebnisse im Standardformat abgeschnitten werden.
Überprüfen Sie, ob Ihre Ausgabe in Windows PowerShell nach der Ausführung dieses Befehls ähnlich wie die folgende aussieht und keine Fehler aufweist.
Server : SERVER1 Database : OrderService_PS ConnectionString : Data Source=SERVER1;Initial Catalog=OrderService_PS;Integrated Security=True
Ein neuer Überwachungsspeicher mit dem Namen OrderService_PS wurde jetzt erstellt und für die Überwachung initialisiert.
Erstellen und Initialisieren des Persistenzspeichers
Zum Initialisieren des OrderService_PS-Speichers mit persistenzbezogenen Tabellen und Elementen wird das Initialize-ASPersistenceDatabase-Cmdlet verwendet. Dieses Cmdlet akzeptiert drei sicherheitsbezogene Parameter:
-Admins
-Readers
-Users
In diesem Lernprogramm werden erneut die standardmäßigen AppFabric-Prinzipalnamen verwendet. Beim Verwenden dieser Parameter mit diesem Cmdlet müssen vollständige Prinzipalnamen verwendet werden. Zu diesem Zweck wird der Umgebungsanbieter für Windows PowerShell verwendet, um den lokalen Computernamen aufzulösen. Geben Sie den folgenden Befehl in Windows PowerShell ein, um zu sehen, wie dies funktioniert:
$env:COMPUTERNAME
Das Ergebnis dieses Befehls zeigt den lokalen Computernamen gemäß der Umgebungsvariablen COMPUTERNAME an. Mithilfe dieses Vorgehens wird der vollständige Prinzipalname der standardmäßigen AppFabric-Prinzipale bereitgestellt.
So erstellen und initialisieren Sie den Persistenzspeicher für die Order Service-Anwendung
Geben Sie den folgenden Befehl in Windows PowerShell ein, um den OrderService_PS-Speicher mithilfe der standardmäßigen AppFabric-Prinzipalnamen für Persistenz zu initialisieren.
Initialize-ASPersistenceSqlDatabase -Database "OrderService_PS" -Admins "$($env:COMPUTERNAME)\AS_Administrators" -Readers "$($env:COMPUTERNAME)\AS_Observers" -Users "BUILTIN\IIS_IUSRS" –Confirm:$false | fl *
Beachten Sie den übergebenen –Confirm:$false-Parameter. Auf diese Weise werden Aufforderungen umgangen, die Änderungen am Speicher zu bestätigen.
Überprüfen Sie, ob das Ergebnis dem unten dargestellten ähnelt und keine Fehler aufweist.
Server : SERVER1 Database : OrderService_PS ConnectionString : Data Source=SERVER1;Initial Catalog=OrderService_PS
Der OrderService_PS-Speicher ist jetzt für die Verwendung mit Persistenz initialisiert.
Erstellen der Verbindungszeichenfolge
Zum Konfigurieren der Anwendung zum Verwenden des neuen Überwachungs- und Persistenzspeichers, den Sie soeben erstellt haben, muss eine Verbindungszeichenfolge für den neuen Speicher erstellt werden. Aktuell umfasst ApplicationServer-Modul für Windows PowerShell kein Cmdlet für diese Aufgabe. Daher wird ein Skriptfunktionsbeispiel basierend auf dem Beispielcode im Beispiel Skriptgesteuerte Konfiguration von AppFabric verwendet, das diesen Vorgang veranschaulicht. Weitere Informationen zu diesem Beispiel finden Sie unter Beispiele.
So erstellen Sie die Verbindungszeichenfolge für den neuen Speicher
Geben Sie in Windows PowerShell den folgenden Befehl ein, um Utility.ps1 zu öffnen.
Notepad Utility.ps1
Kopieren Sie den folgenden Code, und fügen Sie ihn in Editor am Ende der Datei ein.
#=========================================================================================================# #=== ===# #=== Adds or updates the specified connection string setting in the specified .NET configuration file. ===# #=== ===# #=========================================================================================================# function UpdateConnectionString([string]$name, [string]$connectionString) { $providerName = "System.Data.SqlClient" $NETFramework4Path = gp -Path HKLM:\Software\Microsoft\'NET Framework Setup'\NDP\v4\Full $ConfigPath = "$($NETFramework4Path.InstallPath)Config\Web.config" Write-Output ("ConfigPath : " + $ConfigPath) $xml = [xml](Get-Content $ConfigPath) $root = $xml.get_DocumentElement() $connectionStrings = $root.SelectSingleNode("connectionStrings") if ($connectionStrings -eq $null) { $locations = $root.SelectNodes("location") foreach ($locationNode in $locations) { $locStrings = $locationNode.SelectSingleNode("connectionStrings") if ($locStrings -ne $null) { $connectionStrings = $locStrings } } if ($connectionStrings -eq $null) { $connectionStrings = $xml.CreateElement("connectionStrings") $root.AppendChild($connectionStrings) | Out-Null } } $xpath = "add[@name='" + $name + "']" $add = $connectionStrings.SelectSingleNode($xpath) if ($add -eq $null) { Write-Output "Adding new connection string setting..." $add = $xml.CreateElement("add") $connectionStrings.AppendChild($add) | Out-Null } else { Write-Output "Updating existing connection string setting..." } $add.SetAttribute("name", $name) $add.SetAttribute("connectionString", $connectionString) $add.SetAttribute("providerName", $providerName) Write-Output $add | Format-List $xml.Save($ConfigPath) }
Schließen Sie Editor, und klicken Sie dann auf Speichern, um Utility.ps1 zu speichern.
Geben Sie in Windows PowerShell den folgenden Befehl ein, um das Skript Utility.ps1 als Modul für die aktuelle Windows PowerShell-Sitzung hinzuzufügen.
import-module .\Utility.ps1
In Windows PowerShell verwenden Sie zum Hinzufügen der neuen Verbindungszeichenfolge die UpdateConnectionString-Funktion. Sie müssen basierend auf dem Umstand, ob Sie Microsoft SQL Server oder SQL Server Express auf dem für dieses Lernprogramm verwendeten Computer installiert haben, die richtige Datenquelle auswählen.
Wenn nur SQL Server Express installiert ist, führen Sie den folgenden Befehl aus, der SQL Server Express auf dem lokalen Computer als Datenquelle verwendet:
UpdateConnectionString "OrderService_PS" "Data Source=.\SQLEXPRESS;Initial Catalog=OrderService_PS;Integrated Security=True"
Wenn SQL Server installiert ist, führen Sie den folgenden Befehl aus, der SQL Server als Datenquelle verwendet:
UpdateConnectionString "OrderService_PS" "Data Source=localhost;Initial Catalog=OrderService_PS;Integrated Security=True"
Überprüfen Sie die neue Verbindungszeichenfolge, indem Sie IIS-Manager (Internetinformationsdienste, Internet Information Services) ausführen, und doppelklicken Sie dann auf das Applet Konfiguration der Überwachungsdatenbank. Dadurch sollte die neue Verbindungszeichenfolge mit dem Namen OrderService_PS zusammen mit den standardmäßigen Verbindungszeichenfolgen angezeigt werden. Der Status für die neue Verbindungszeichenfolge sollte Initialisiert sein.
Die Order Service-Anwendung kann jetzt von AppFabric für die Verwendung des OrderService_PS-Speichers für Überwachung und Persistenz konfiguriert werden.
Konfigurieren der Anwendung zum Verwenden der Überwachungs- und Persistenzdatenbank
So konfigurieren Sie die „Order Service_PS“-Website zum Verwenden des neuen Speichers für die Überwachung
Geben Sie in Windows PowerShell den folgenden Befehl ein, um für die Überwachung der OrderService_PS-Website den neuen Speicher zu konfigurieren.
Set-ASAppMonitoring -SiteName OrderService_PS -MonitoringLevel HealthMonitoring -ConnectionStringName OrderService_PS
Überprüfen Sie, ob Ihre Ausgabe nach dem Ausführen des Befehls ungefähr wie die folgende aussieht, in der die auf die Website angewendeten Überwachungseinstellungen dargestellt sind.
ConnectionStringName : OrderService_PS ConnectionString : Data Source=localhost;Initial Catalog=OrderService_PS;Integrated Security=True IsEnabled : True MonitoringLevel : HealthMonitoring ProviderId : c37234f8-4eae-41c8-9bd4-cd42706d4219 ProviderName : System.Data.SqlClient TrackingProfile : HealthMonitoring Tracking Profile SiteName : OrderService_PS VirtualPath : /
So konfigurieren Sie die „OrderService_PS“-Website, den neuen Speicher auch für Persistenz zu verwenden
Führen Sie in Windows PowerShell den folgenden Befehl aus:
Set-ASAppSqlServicePersistence -SiteName OrderService_PS -ConnectionStringName OrderService_PS
Überprüfen Sie, ob Ihre Ausgabe nach dem Ausführen des Befehls ungefähr wie die folgende aussieht, in der die auf die Website angewendeten Persistenzeinstellungen dargestellt sind.
ConnectionString : ConnectionStringName : OrderService_PS HostLockRenewalPeriod : 00:00:20 InstanceCompletionAction : DeleteNothing InstanceEncodingOption : GZip InstanceLockedExceptionAction : BasicRetry AuthorizedWindowsGroup : AS_Administrators IsLocal : True BehaviorName :
Aktivieren des „net.pipe“-Protokolls
Das „net.pipe“-Protokoll sollte bereits für die Auftragsworkflowdienst-Webanwendung aktiviert sein, wenn Sie den Schritt in Lektion 3: Konfigurieren von Order Service des Order Service-Lernprogramms ausgeführt haben. In diesem Abschnitt wird dargelegt, wie das Protokoll mit Windows PowerShell aktiviert wird. ApplicationServer-Modul für Windows PowerShell macht für diesen Vorgang kein Cmdlet verfügbar. Stattdessen wird der Vorgang mithilfe von Appcmd.exe ausgeführt. Weitere Informationen zu Appcmd.exe finden Sie unter dem folgenden Link: Appcmd.exe (https://go.microsoft.com/fwlink/?LinkId=169337) (englischsprachig).
Führen Sie den folgenden Befehl in Windows PowerShell aus, um das „net.pipe“-Protokoll für die Auftragsworkflowdienst-Webanwendung zu aktivieren.
.$env:SystemRoot\System32\inetsrv\appcmd.exe set app "OrderService_PS/OrderWorkflowService" /enabledProtocols:"http,net.pipe"
Appcmd.exe meldet den Erfolg des Vorgangs in Windows PowerShell in der folgenden Weise:
APP object "OrderService_PS/OrderWorkflowService" changed
Schritte dieser Übungseinheit
In dieser Übungseinheit wurden ein neuer Überwachungs- und Persistenzspeicher mithilfe von AppFabric-Cmdlets erstellt. Darüber hinaus wurde eine neue Verbindungszeichenfolge in der Web.config-Datei erstellt und anschließend die OrderService_PS-Website zum Verwenden des neuen Speichers für Überwachung und Persistenz konfiguriert. Alle diese Befehle können einem Windows PowerShell-Skript hinzugefügt werden, um die Anwendungskonfiguration zu automatisieren.
Weitere Schritte
In Lektion 4: Überwachen des Auftragsdiensts mit Windows PowerShell erfahren Sie, wie Anwendungen mithilfe von AppFabric-Cmdlets überwacht werden.
Siehe auch
Konzepte
Lektion 5: Nachverfolgen des Workflows mit Windows PowerShell
Weitere Ressourcen
Lektion 1: Erste Schritte in AppFabric-Cmdlets für Windows PowerShell
Lektion 2: Bereitstellen der Auftragsdienstanwendung mit Windows PowerShell
Lektion 3: Konfigurieren des Auftragsdiensts mit Windows PowerShell
Lektion 4: Überwachen des Auftragsdiensts mit Windows PowerShell
2012-03-05