Condividi tramite


Configurazioni dei percorsi <di configurazionePaths>

Panoramica

L'elemento <configPaths> elenca i percorsi in cui viene impostata un'impostazione di configurazione nel file system di configurazione distribuito internet Information Services (IIS) 7. Il contenuto dell'elemento <configPaths> viene generato dinamicamente e può essere accessibile a livello di codice per elencare le impostazioni di configurazione a partire da un percorso specificato dall'utente tramite ogni percorso discendente. È anche possibile elencare le impostazioni nei file di ApplicationHost.config e Web.config usando l'elemento <configPaths> .

L'elemento <configPaths> contiene una raccolta di <searchResult> elementi che specificano le informazioni seguenti:

  • L'attributo path di ogni <searchResult> elemento specifica il percorso virtuale assoluto del file di configurazione per il risultato della ricerca. - L'attributo locationPath di ogni <searchResult> elemento specifica il percorso relativo per il <location> tag all'interno del file di configurazione specificato dall'attributo path .

    Nota

    Se l'elemento punta a un file .config, l'attributo <searchResult>locationPath per l'elemento <searchResult> conterrà una stringa vuota.

  • L'attributo di stato di ogni <searchResult> elemento contiene un codice HRESULT per il risultato della ricerca.

  • Ogni <searchResult> elemento contiene una raccolta di elementi che contengono il nome di <section> ogni elemento nei risultati della ricerca.

Nota

L'elemento e i <configPaths> relativi elementi figlio sono di sola lettura e non possono essere configurati da un utente finale.

Compatibilità

Versione Note
IIS 10.0 L'elemento <configPaths> non è stato modificato in IIS 10.0.
IIS 8,5 L'elemento <configPaths> non è stato modificato in IIS 8.5.
IIS 8,0 L'elemento <configPaths> non è stato modificato in IIS 8.0.
IIS 7,5 L'elemento <configPaths> non è stato modificato in IIS 7.5.
IIS 7.0 L'elemento <configPaths> è stato introdotto in IIS 7.0.
IIS 6.0 N/D

Installazione

L'elemento <configPaths> è incluso nell'installazione predefinita di IIS 7.

Procedure

Non esiste un'interfaccia utente per configurare l'elemento <configPaths> per IIS 7. Per esempi di come configurare l'elemento a livello di codice, vedere la <configPaths> sezione Esempi di codice di questo documento.

Configurazione

Attributi

Nessuno.

Elementi figlio

Elemento Descrizione
searchResult Contiene una raccolta di risultati della ricerca di configurazione.

Esempio di configurazione

Nota

L'elemento <configPaths> viene generato dinamicamente. A causa di questo, non è possibile aggiungere un <configPaths> elemento ai file di configurazione. Per esempi di come accedere all'elemento <configPaths> a livello di codice, vedere la sezione Esempi di codice di questo documento.

Codice di esempio

Gli esempi di codice seguenti usano l'elemento per cercare lo <configPaths> spazio dei nomi Configurazione sito Web predefinito per ogni elemento e quindi restituire il percorso e la posizione per ogni <system.webServer/defaultDocument> elemento nella console.

AppCmd.exe

Nota

Non è possibile eseguire query <configPaths> su impostazioni usando AppCmd.exe.

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample
{
   private static void Main()
   {
      using (ServerManager serverManager = new ServerManager())
      {
         Configuration config = serverManager.GetWebConfiguration("Default Web Site");
         ConfigurationSection configPathsSection = config.GetSection("configPaths");
         ConfigurationElementCollection searchResultCollection = configPathsSection.GetCollection();

         foreach (ConfigurationElement searchResultElement in searchResultCollection)
         {
            string path = (string)searchResultElement["path"];
            string locationPath = (string)searchResultElement["locationPath"];

            foreach (ConfigurationElement sectionElement in searchResultElement.GetCollection())
            {
               if (string.Compare("system.webServer/defaultDocument",
                  (string)sectionElement["name"], false) == 0)
               {
                  Console.WriteLine("Path: " + path);
                  if (!String.IsNullOrEmpty(locationPath))
                  {
                     Console.WriteLine("\tLocation: " + locationPath);
                     Console.WriteLine("\t\tName: " + sectionElement["name"]);
                  }
                  else Console.WriteLine("\tName: " + sectionElement["name"]);
               }
            }
         } 
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample

   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetWebConfiguration("Default Web Site")
      Dim configPathsSection As ConfigurationSection = config.GetSection("configPaths")
      Dim searchResultCollection As ConfigurationElementCollection = configPathsSection.GetCollection
      For Each searchResultElement As ConfigurationElement In searchResultCollection
         Dim path As String = CType(searchResultElement("path"), String)
         Dim locationPath As String = CType(searchResultElement("locationPath"), String)
         For Each sectionElement As ConfigurationElement In searchResultElement.GetCollection
            If (String.Compare("system.webServer/defaultDocument", _
                  CType(sectionElement("name"), String), False) = 0) Then
               Console.WriteLine(("Path: " + path))
               If Not String.IsNullOrEmpty(locationPath) Then
                  Console.WriteLine((vbTab & "Location: " + locationPath))
                  Console.WriteLine((vbTab & vbTab & "Name: " + sectionElement("name")))
               Else
                  Console.WriteLine((vbTab & "Name: " + sectionElement("name")))
               End If
            End If
         Next
      Next
   End Sub

End Module

JavaScript

var adminManager = new ActiveXObject("Microsoft.ApplicationHost.WritableAdminManager");
var configPathsSection = adminManager.GetAdminSection("configPaths", "MACHINE/WEBROOT/APPHOST/Default Web Site");
var searchResultCollection = configPathsSection.Collection;

for (var i = 0; i < searchResultCollection.Count; i++)
{
   var searchResultElement = searchResultCollection.Item(i);
   var path = searchResultElement.GetPropertyByName("path").Value;
   var locationPath = searchResultElement.GetPropertyByName("locationPath").Value;

   sectionElementCollection = searchResultElement.Collection;
   for (var j = 0; j < sectionElementCollection.Count; j++)
   {
      var sectionElement = sectionElementCollection.Item(j);
      var name = sectionElement.GetPropertyByName("name").Value;
      if (name == "system.webServer/defaultDocument")
      {
         WScript.Echo("Path: " + path);
         if (locationPath!="")
         {
            WScript.Echo("\tLocation: " + locationPath);
            WScript.Echo("\t\tName: " + name);
         }
         else WScript.Echo("\tName: " + name);
      }
   }
}

VBScript

Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
Set configPathsSection = adminManager.GetAdminSection("configPaths", "MACHINE/WEBROOT/APPHOST/Default Web Site")
Set searchResultCollection = configPathsSection.Collection

For i = 0 To CInt(searchResultCollection.Count) - 1
   Set searchResultElement = searchResultCollection.Item(i)
   path = searchResultElement.GetPropertyByName("path").Value
   locationPath = searchResultElement.GetPropertyByName("locationPath").Value
   Set sectionElementCollection = searchResultElement.Collection
   For j = 0 To CInt(sectionElementCollection.Count) - 1
      Set sectionElement = sectionElementCollection.Item(j)
      name = sectionElement.GetPropertyByName("name").Value
      If name = "system.webServer/defaultDocument" Then
         WScript.Echo "Path: " + path
         If locationPath<>"" Then
            WScript.Echo(vbTab & "Location: " + locationPath)
            WScript.Echo(vbTab & vbTab & "Name: " + name)
         Else
            WScript.Echo(vbTab & "Name: " + name)
         End if
      End If
   Next
Next