Leer en inglés

Compartir a través de


Rutas de configuración<configPaths>

Información general

El elemento <configPaths> enumera las ubicaciones en las que se establece un valor de configuración en el sistema de archivos de configuración distribuido de Internet Information Services (IIS) 7. El contenido del elemento <configPaths> se genera de manera dinámica y es accesible mediante programación para enumerar los valores configuración a partir de una ruta de acceso especificada por el usuario en cada ruta de acceso descendiente. También puede enumerar los valores de los archivos ApplicationHost.config y Web.config mediante el elemento <configPaths>.

El elemento <configPaths> contiene una colección de elementos <searchResult> que especifican la siguiente información:

  • El atributo path de cada elemento <searchResult> especifica la ruta de acceso virtual absoluta del archivo de configuración para el resultado de la búsqueda. - El atributo locationPath de cada elemento <searchResult> especifica la ruta de acceso relativa para la etiqueta <location> dentro del archivo de configuración especificado por el atributo path.

    Nota

    Si el elemento <searchResult> apunta a un archivo .config, el atributo locationPath para el elemento <searchResult> contendrá una cadena vacía.

  • El atributo status de cada elemento <searchResult> contiene un código HRESULT para el resultado de la búsqueda.

  • Cada elemento <searchResult> contiene una colección de elementos <section> que contienen el nombre de cada elemento en los resultados de la búsqueda.

Nota

El elemento <configPaths> y sus elementos secundarios son de solo lectura y un usuario final no puede configurarlos.

Compatibilidad

Versión Notas
IIS 10.0 El elemento <configPaths> no se ha modificado en IIS 10.0.
IIS 8.5 El elemento <configPaths> no se ha modificado en IIS 8.5.
IIS 8.0 El elemento <configPaths> no se ha modificado en IIS 8.0.
IIS 7.5 El elemento <configPaths> no se ha modificado en IIS 7.5.
IIS 7.0 El elemento <configPaths> se introdujo en IIS 7.0.
IIS 6,0 N/D

Configuración

El elemento <configPaths> se incluye en la instalación predeterminada de IIS 7.

Procedimientos

No hay ninguna interfaz de usuario para configurar el elemento <configPaths> para IIS 7. Para obtener ejemplos de cómo configurar el elemento <configPaths> mediante programación, vea la sección Ejemplos de código de este documento.

Configuración

Atributos

Ninguno.

Elementos secundarios

Elemento Descripción
searchResult Contiene una colección de resultados de la búsqueda de configuración.

Ejemplo de configuración

Nota

El elemento <configPaths> se genera dinámicamente. Por esto, no se puede agregar un elemento <configPaths> a los archivos de configuración. Para obtener ejemplos de cómo acceder al elemento <configPaths> mediante programación, vea la sección Ejemplos de código de este documento.

Código de ejemplo

En los ejemplos de código siguientes se usa el elemento <configPaths> para buscar el espacio de nombres de configuración de sitio web predeterminado para cada elemento <system.webServer/defaultDocument> y, después, mostrar la ruta de acceso y la ubicación de cada elemento en la consola.

AppCmd.exe

Nota

No se pueden consultar los valores de <configPaths> mediante 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