Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
von Thomas Deml
In dieser exemplarischen Vorgehensweise erfahren Sie, wie Sie einige erweiterte Konfigurationsaufgaben mithilfe von XPath-Abfragen und Platzhaltern ausführen können.
Einführung
In der vorherigen exemplarischen Vorgehensweise wurden Sie mit den Cmdlets „*-WebConfiguration“ und „*-WebConfigurationProperty“ vertraut gemacht. Diese Cmdlets haben mehr zu bieten, als man auf den ersten Blick sieht. Der Parameter „-filter“ dient nicht nur der Angabe eines Konfigurationsabschnitts. Er ist eine XPath-Abfrage, und in dieser exemplarischen Vorgehensweise wird besprochen, wie wir das nutzen können. Es gibt auch einige sinnvolle Möglichkeiten, um Platzhalter mit den „*-WebConfiguration*“-Befehlen zu verwenden.
In dieser exemplarischen Vorgehensweise werden die Websites, Anwendungen und virtuellen Verzeichnisse verwendet, die in vorherigen Beispielen erstellt wurden.
Verwenden von XPath-Abfragen
Hier ist ein einfaches Beispiel, das zeigt, wie Sie Platzhalter mit dem „Get-WebConfigurationProperty“-Cmdlet verwenden können:
PS IIS:\Sites\DemoSite\DemoApp> Get-WebConfigurationProperty -filter //defaultDocument/files -name Collection[value="index*"] | select value
Und noch ein weiteres. Hier alle Handlerzuordnungen, die von ASPNET_ISAPI.DLL ausgeführt werden:
PS IIS:\Sites\DemoSite\DemoApp> Get-WebConfigurationProperty -filter //handlers -name Collection[scriptProcessor="*aspnet_isapi.dll"] | select name,path
name path
---- ----
svc-ISAPI-2.0-64 *.svc
svc-ISAPI-2.0 *.svc
AXD-ISAPI-2.0 *.axd
PageHandlerFactory-ISAPI-2.0 *.mspx
SimpleHandlerFactory-ISAPI-2.0 *.ashx
WebServiceHandlerFactory-ISAPI-2.0 *.asmx
HttpRemotingHandlerFactory-rem-ISAPI-2.0 *.rem
HttpRemotingHandlerFactory-soap-ISAPI-2.0 *.soap
AXD-ISAPI-2.0-64 *.axd
PageHandlerFactory-ISAPI-2.0-64 *.mspx
SimpleHandlerFactory-ISAPI-2.0-64 *.ashx
WebServiceHandlerFactory-ISAPI-2.0-64 *.asmx
HttpRemotingHandlerFactory-rem-ISAPI-2.0-64 *.rem
HttpRemotingHandlerFactory-soap-ISAPI-2.0-64 *.soap
Angenommen, Sie mögen die „.aspx“-Erweiterung für Ihre ASP.Net-Dateien nicht besonders und möchten alle IIS-Handlerzuordnungen von „*.aspx“ in „*.mspx“ ändern. Könnte es noch kürzer sein?
PS IIS:\Sites\DemoSite\DemoApp> set-webconfiguration "/system.webServer/handlers/add[@path='*.aspx']/@path" -value "*.mspx"
Sehen wir uns an, ob die Änderungen festgelegt wurden:
(get-webconfiguration //handlers).collection | select name,path
Jetzt sehen wir uns die Konfigurationsdatei selbst an. Wir können das „get-item“-Cmdlet verwenden, das in einer vorherigen exemplarischen Vorgehensweise beschrieben wurde.
PS IIS:\Sites\DemoSite\DemoApp> get-content (((get-item .).physicalPath).ToString() + "\web.config")
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<remove name="PageHandlerFactory-ISAPI-2.0-64" />
<remove name="PageHandlerFactory-ISAPI-2.0" />
<remove name="PageHandlerFactory-Integrated" />
<add name="PageHandlerFactory-Integrated" path="*.mspx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.PageHandlerFactory" preCondition="integratedMode" />
<add name="PageHandlerFactory-ISAPI-2.0" path="*.mspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
<add name="PageHandlerFactory-ISAPI-2.0-64" path="*.mspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" />
</handlers>
</system.webServer>
</configuration>
Sie können sehen, dass das Konfigurationssystem die alten Handler entfernt und durch neue Handler ersetzt hat, die jetzt „*.mspx“ zugeordnet sind.
Informationen zur IIS-Konfiguration
Es ist gut, wenn Sie wissen, was Sie konfigurieren möchten. Aber was, wenn nicht? Hier sind ein paar Tipps.
Anzeigen der verfügbaren IIS-Konfigurationsabschnitte:
get-webconfiguration //* | where {$_.psbase.SectionPath -like "*" -and $_.psbase.SectionPath.length -gt 0} | select SectionPath
Anzeigen der Eigenschaften, die Sie in einem bestimmten Abschnitt konfigurieren können:
get-webconfiguration system.webServer/caching | select -exp Attributes | select Name
Anzeigen der beiden Informationen, also aller Abschnitte mit ihren Eigenschaften:
get-webconfiguration //* | where {$_.psbase.SectionPath -like "*" -and $_.psbase.SectionPath.length -gt 0} | foreach {$_.SectionPath.ToUpper();get-webconfiguration $_.SectionPath | select -exp Attributes | select Name;"`n"} | more
Wir werden diese Befehle wahrscheinlich bei einer späteren Tech Preview in einige Funktionen setzen, aber im Moment ist das alles :).
Zusammenfassung
In dieser exemplarischen Vorgehensweise haben Sie erfahren, wie Sie komplexe IIS-Konfigurationsaufgaben mithilfe von Platzhaltern und XPath-Abfragen ausführen können. In der nächsten exemplarischen Vorgehensweise wird erläutert, wie Status- und Laufzeitdaten ermittelt werden.