Sitios <sitios>
Información general
El grupo de secciones <sites>
contiene opciones de configuración para todos los sitios de un servidor IIS 7. El elemento <sites>
contiene una colección de elementos <site>
. Al crear un nuevo sitio web, IIS agrega un elemento <site>
a la colección.
Cada elemento <site>
contiene opciones de configuración para un sitio web independiente hospedado en la instalación de IIS 7. Por ejemplo, el sitio web predeterminado y su configuración se definen en un elemento <site>
que se encuentra entre las etiquetas de apertura y cierre del elemento <sites>
; los elementos de configuración de cualquier sitio adicional que cree también se encuentran allí.
El grupo de secciones <sites>
también puede contener los elementos <siteDefaults>
, <applicationDefaults>
y <virtualDirectoryDefaults>
. El elemento <siteDefaults>
define los valores de configuración predeterminados para cualquier sitio que se ejecute en el servidor, el elemento <applicationDefaults>
define los valores de configuración predeterminados para cualquier aplicación que se ejecute en el servidor y el elemento <virtualDirectoryDefaults>
define los valores de configuración predeterminados para cualquier directorio virtual que se ejecute en el servidor.
Compatibilidad
Versión | Notas |
---|---|
IIS 10.0 | El elemento <sites> no se modificó en IIS 10.0. |
IIS 8.5 | El elemento <sites> no se modificó en IIS 8.5. |
IIS 8.0 | El elemento <sites> no se modificó en IIS 8.0. |
IIS 7.5 | El elemento <sites> no se modificó en IIS 7.5. |
IIS 7.0 | El elemento <sites> se introdujo en IIS 7.0. |
IIS 6,0 | La colección <sites> reemplaza el objeto de metabase IIS 6.0 IIsWebServer. |
Configuración
El elemento <sites>
se incluye en la instalación predeterminada de IIS 7.
Procedimientos
Al configurar un nuevo sitio web en IIS 7, debe asignar al sitio web un nombre de sitio y una ruta de acceso física. También hay una serie de opciones de configuración opcionales que puede establecer. Si tiene previsto seguir usando el sitio web predeterminado en el servidor IIS 7, debe modificar la información de enlace del nuevo sitio. Para ello, cambie el puerto o escriba un nombre de host para el nuevo sitio web.
Cómo crear un sitio web
Abra el Administrador de Internet Information Services (IIS):
Si usa Windows Server 2012 o Windows Server 2012 R2:
- En la barra de tareas, haga clic en Administrador del servidor, en Herramientas y, a continuación, en Administrador de Internet Information Services (IIS).
Si usa Windows 8 o Windows 8.1:
- Mantenga presionada la tecla Windows, presione la letra X y haga clic en Panel de control.
- En Panel de control, haga clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
Si usa Windows Server 2008 o Windows Server 2008 R2:
- En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Administrador de Internet Information Services (IIS).
Si usa Windows Vista o Windows 7:
- En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
- Haga doble clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
En el panel Conexiones, expanda el nombre del servidor y, después, haga clic en Sitios.
En el panel Acciones, haga clic en Agregar sitio web....
En el cuadro de diálogo Agregar sitio web, como mínimo, escriba información en los cuadros de texto Nombre del sitio y Ruta de acceso física y elija si desea escribir información en el cuadro de texto Nombre de host o cambiar el número en el cuadro Puerto.
En el Administrador de IIS, haga clic en el botón Actualizar para comprobar que el sitio se ha iniciado.
Configuración
Puede configurar el elemento <sites>
en el nivel de servidor en el archivo ApplicationHost.config.
Atributos
Ninguno.
Elementos secundarios
Elemento | Descripción |
---|---|
applicationDefaults |
Elemento opcional. Especifica la configuración predeterminada para todas las aplicaciones del servidor. |
site |
Elemento opcional. Especifica los valores de configuración de un sitio. |
siteDefaults |
Elemento opcional. Especifica la configuración predeterminada para todos los sitios del servidor. |
virtualDirectoryDefaults |
Elemento opcional. Especifica la configuración predeterminada para todos los directorios virtuales del servidor. |
Ejemplo de configuración
El siguiente elemento <sites>
predeterminado se configura en el archivo ApplicationHost.config raíz en IIS 7.
<sites>
<site name="Default Web Site" id="1">
<application path="/">
<virtualDirectory path="/" physicalPath="%SystemDrive%\inetpub\wwwroot" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:80:" />
</bindings>
</site>
<siteDefaults>
<logFile logFormat="W3C" directory="%SystemDrive%\inetpub\logs\LogFiles" />
<traceFailedRequestsLogging directory="%SystemDrive%\inetpub\logs\FailedReqLogFiles" />
</siteDefaults>
<applicationDefaults applicationPool="DefaultAppPool" />
<virtualDirectoryDefaults allowSubDirConfig="true" />
</sites>
Compatibilidad
En combinación con el elemento <site>
, el elemento <sites>
reemplaza la propiedad de metabase IIsWebServer de IIS 6.0.
Código de ejemplo
En los ejemplos siguientes se crea un sitio web denominado Contoso con un identificador 2 y se establece un enlace para el protocolo HTTP a través del puerto 80 con un encabezado de host de "www.contoso.com". La ruta de acceso física del nuevo sitio web es C:\Inetpub\www.contoso.com\wwwroot.
AppCmd.exe
appcmd.exe set config -section:system.applicationHost/sites /+"[name='Contoso',id='2',serverAutoStart='True']" /commit:apphost
appcmd.exe set config -section:system.applicationHost/sites /+"[name='Contoso',id='2'].bindings.[protocol='http',bindingInformation='*:80:www.contoso.com']" /commit:apphost
appcmd.exe set config -section:system.applicationHost/sites /+"[name='Contoso',id='2'].[path='/']" /commit:apphost
appcmd.exe set config -section:system.applicationHost/sites /+"[name='Contoso',id='2'].[path='/'].[path='/',physicalPath='C:\Inetpub\www.contoso.com\wwwroot']" /commit:apphost
Nota:
Debe asegurarse de establecer el parámetro de confirmación en apphost
cuando use AppCmd.exe para configurar estas opciones. Esto confirma los valores de configuración en la sección de ubicación adecuada del archivo ApplicationHost.config.
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.GetApplicationHostConfiguration();
ConfigurationSection sitesSection = config.GetSection("system.applicationHost/sites");
ConfigurationElementCollection sitesCollection = sitesSection.GetCollection();
ConfigurationElement siteElement = sitesCollection.CreateElement("site");
siteElement["name"] = @"Contoso";
siteElement["id"] = 2;
siteElement["serverAutoStart"] = true;
ConfigurationElementCollection bindingsCollection = siteElement.GetCollection("bindings");
ConfigurationElement bindingElement = bindingsCollection.CreateElement("binding");
bindingElement["protocol"] = @"http";
bindingElement["bindingInformation"] = @"*:80:www.contoso.com";
bindingsCollection.Add(bindingElement);
ConfigurationElementCollection siteCollection = siteElement.GetCollection();
ConfigurationElement applicationElement = siteCollection.CreateElement("application");
applicationElement["path"] = @"/";
ConfigurationElementCollection applicationCollection = applicationElement.GetCollection();
ConfigurationElement virtualDirectoryElement = applicationCollection.CreateElement("virtualDirectory");
virtualDirectoryElement["path"] = @"/";
virtualDirectoryElement["physicalPath"] = @"C:\Inetpub\www.contoso.com\wwwroot";
applicationCollection.Add(virtualDirectoryElement);
siteCollection.Add(applicationElement);
sitesCollection.Add(siteElement);
serverManager.CommitChanges();
}
}
}
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.GetApplicationHostConfiguration
Dim sitesSection As ConfigurationSection = config.GetSection("system.applicationHost/sites")
Dim sitesCollection As ConfigurationElementCollection = sitesSection.GetCollection
Dim siteElement As ConfigurationElement = sitesCollection.CreateElement("site")
siteElement("name") = "Contoso"
siteElement("id") = 2
siteElement("serverAutoStart") = True
Dim bindingsCollection As ConfigurationElementCollection = siteElement.GetCollection("bindings")
Dim bindingElement As ConfigurationElement = bindingsCollection.CreateElement("binding")
bindingElement("protocol") = "http"
bindingElement("bindingInformation") = "*:80:www.contoso.com"
bindingsCollection.Add(bindingElement)
Dim siteCollection As ConfigurationElementCollection = siteElement.GetCollection
Dim applicationElement As ConfigurationElement = siteCollection.CreateElement("application")
applicationElement("path") = "/"
Dim applicationCollection As ConfigurationElementCollection = applicationElement.GetCollection
Dim virtualDirectoryElement As ConfigurationElement = applicationCollection.CreateElement("virtualDirectory")
virtualDirectoryElement("path") = "/"
virtualDirectoryElement("physicalPath") = "C:\Inetpub\www.contoso.com\wwwroot"
applicationCollection.Add(virtualDirectoryElement)
siteCollection.Add(applicationElement)
sitesCollection.Add(siteElement)
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var sitesSection = adminManager.GetAdminSection("system.applicationHost/sites", "MACHINE/WEBROOT/APPHOST");
var sitesCollection = sitesSection.Collection;
var siteElement = sitesCollection.CreateNewElement("site");
siteElement.Properties.Item("name").Value = "Contoso";
siteElement.Properties.Item("id").Value = 2;
siteElement.Properties.Item("serverAutoStart").Value = true;
var bindingsCollection = siteElement.ChildElements.Item("bindings").Collection;
var bindingElement = bindingsCollection.CreateNewElement("binding");
bindingElement.Properties.Item("protocol").Value = "http";
bindingElement.Properties.Item("bindingInformation").Value = "*:80:www.contoso.com";
bindingsCollection.AddElement(bindingElement);
var siteCollection = siteElement.Collection;
var applicationElement = siteCollection.CreateNewElement("application");
applicationElement.Properties.Item("path").Value = "/";
var applicationCollection = applicationElement.Collection;
var virtualDirectoryElement = applicationCollection.CreateNewElement("virtualDirectory");
virtualDirectoryElement.Properties.Item("path").Value = "/";
virtualDirectoryElement.Properties.Item("physicalPath").Value = "C:\\Inetpub\\www.contoso.com\\wwwroot";
applicationCollection.AddElement(virtualDirectoryElement);
siteCollection.AddElement(applicationElement);
sitesCollection.AddElement(siteElement);
adminManager.CommitChanges();
VBScript
Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set sitesSection = adminManager.GetAdminSection("system.applicationHost/sites", "MACHINE/WEBROOT/APPHOST")
Set sitesCollection = sitesSection.Collection
Set siteElement = sitesCollection.CreateNewElement("site")
siteElement.Properties.Item("name").Value = "Contoso"
siteElement.Properties.Item("id").Value = 2
siteElement.Properties.Item("serverAutoStart").Value = True
Set bindingsCollection = siteElement.ChildElements.Item("bindings").Collection
Set bindingElement = bindingsCollection.CreateNewElement("binding")
bindingElement.Properties.Item("protocol").Value = "http"
bindingElement.Properties.Item("bindingInformation").Value = "*:80:www.contoso.com"
bindingsCollection.AddElement bindingElement
Set siteCollection = siteElement.Collection
Set applicationElement = siteCollection.CreateNewElement("application")
applicationElement.Properties.Item("path").Value = "/"
Set applicationCollection = applicationElement.Collection
Set virtualDirectoryElement = applicationCollection.CreateNewElement("virtualDirectory")
virtualDirectoryElement.Properties.Item("path").Value = "/"
virtualDirectoryElement.Properties.Item("physicalPath").Value = "C:\Inetpub\www.contoso.com\wwwroot"
applicationCollection.AddElement(virtualDirectoryElement)
siteCollection.AddElement applicationElement
sitesCollection.AddElement siteElement
adminManager.CommitChanges()