Compartir a través de


Adición de un enlace predeterminado <binding>

Información general

El elemento <binding> del elemento <bindings> permite configurar la información necesaria para las solicitudes de comunicación con un sitio web.

Puede configurar la información de enlace al crear un sitio web, o bien editar la información de enlace después de crear el sitio. La información de enlace incluye el protocolo que los clientes usan para comunicarse con el sitio, la dirección IP del sitio, el número de puerto y un encabezado host.

El elemento <binding> contiene dos atributos para configurar la información de enlace: bindingInformation y protocol. El atributo bindingInformation contiene la dirección IP, el número de puerto y, opcionalmente, el encabezado host del sitio. El protocolo protocol define el protocolo que se usará para comunicarse con el sitio.

Compatibilidad

Versión Notas
IIS 10.0 El elemento <binding> no se modificó en IIS 10.0.
IIS 8.5 El elemento <binding> no se modificó en IIS 8.5.
IIS 8.0 El atributo sslFlags se agregó para especificar el enlace usado para los certificados de Capa de sockets seguros.
IIS 7.5 El elemento <binding> no se modificó en IIS 7.5.
IIS 7.0 El elemento <binding> de la colección <bindings> se introdujo en IIS 7.0.
IIS 6,0 La colección <bindings> reemplaza las secciones de la propiedad ServerBindings en el objeto de metabase IIsWebServer de IIS 6.0.

Configuración

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

Procedimientos

Cómo agregar información de enlace predeterminada a un servidor

  1. 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).
  2. En el panel Conexiones, seleccione el nombre del servidor.

  3. En el panel Inicio, haga doble clic en Editor de configuración.

  4. Vaya a system.applicationHost/sites en Sección.

  5. En el cuadro de diálogo Enlaces de sitios, haga clic en Agregar....

  6. Expanda siteDefaults.

  7. Seleccione bindings y, a continuación, haga clic en los puntos suspensivos situados a la derecha para abrir el Editor de recopilación.

    Captura de pantalla del cuadro de diálogo Enlaces de sitio que muestra el nodo Valores predeterminados del sitio expandido y Enlaces seleccionados.

  8. Haga clic en Agregar y escriba los valores de bindingInformation, protocol y sslFlags.

  9. Cierre el Editor de recopilación y, en el panel Acciones, haga clic en Aplicar.

Configuración

Puede agregar elementos <binding> predeterminados dentro del elemento <bindings> en la sección <siteDefaults> del archivo ApplicationHost.config.

Atributo Descripción
bindingInformation Atributo de cadena necesario.

Especifica información para comunicarse con un sitio. Por ejemplo, un enlace de sitio web incluye la dirección IP (o direcciones IP no especificadas), el número de puerto y un encabezado host opcional que se usa para comunicarse con el sitio.
protocol Atributo de cadena necesario.

Especifica el protocolo para comunicarse con un sitio.
sslFlags Atributo opcional uint que funciona como el tipo de marcas, con las siguientes marcas posibles:
Valor Descripción
0 La conexión segura realizada mediante una combinación ip/puerto. Solo se puede enlazar un certificado a una combinación de dirección IP y puerto.
1 La conexión segura realizada con el número de puerto y el nombre de host obtenidos mediante indicación de nombre de servidor (SNI).
2 La conexión segura se realiza mediante el almacén de certificados SSL centralizado.
4 Deshabilite HTTP/2.
8 Deshabilite la asociación OCSP.
16 Deshabilite QUIC.
32 Deshabilite TLS 1.3 a través de TCP.
64 Deshabilite TLS heredado.
La compatibilidad centralizada con certificados SSL permite crear un almacén de certificados centralizado que pueda contener varios archivos de certificado. Los archivos de certificado se pueden asignar para que se correspondan con los nombres de host que contienen. Esto permite crear un enlace que solo requiera un puerto, en lugar de una combinación de ip/puerto o nombre de host o puerto. Cuando recibe una solicitud, IIS compara el puerto, determina el nombre de host de la solicitud y busca en el almacén de certificados centralizados un archivo de certificado con un nombre coincidente. Usa ese certificado.

Con un indicador de nombre de servidor (SNI), el nombre de host se intercambia como parte del protocolo de enlace SSL. SNI está habilitado en el cuadro de diálogo Agregar enlace de sitio al agregar un enlace con un tipo de HTTPS. Esto es útil para las conexiones SSL que hospedan varios servidores en una sola dirección de red.

Los valores mayores que 4 solo se admiten en IIS 10 versión 1809 y posteriores. El valor predeterminado es 0.

Elementos secundarios

Ninguno.

Ejemplo de configuración

En el ejemplo de configuración siguiente se especifican las opciones bindings predeterminadas para IIS 7.

<system.applicationHost>
   <sites>
      <siteDefaults>
         <bindings>
            <binding protocol="http" bindingInformation="127.0.0.1:8080:" />
         </bindings>
      </siteDefaults>
   </sites>
</system.applicationHost>

Código de ejemplo

Los ejemplos de código siguientes configuran las opciones bindings predeterminadas para IIS 7.

AppCmd.exe

appcmd.exe set config -section:system.applicationHost/sites /siteDefaults.bindings.[protocol='http',bindingInformation='*:8080:contoso.com'].bindingInformation:"127.0.0.1:8080:" /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");
         ConfigurationElement siteDefaultsElement = sitesSection.GetChildElement("siteDefaults");

         ConfigurationElementCollection bindingsCollection = siteDefaultsElement.GetCollection("bindings");
         ConfigurationElement bindingElement = bindingsCollection.CreateElement("binding");
         bindingElement["protocol"] = @"http";
         bindingElement["bindingInformation"] = @"127.0.0.1:8080:";
         bindingsCollection.Add(bindingElement);

         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 siteDefaultsElement As ConfigurationElement = sitesSection.GetChildElement("siteDefaults")

      Dim bindingsCollection As ConfigurationElementCollection = siteDefaultsElement.GetCollection("bindings")
      Dim bindingElement As ConfigurationElement = bindingsCollection.CreateElement("binding")
      bindingElement("protocol") = "http"
      bindingElement("bindingInformation") = "127.0.0.1:8080:"
      bindingsCollection.Add(bindingElement)

      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 siteDefaultsElement = sitesSection.ChildElements.Item("siteDefaults");

var bindingsCollection = siteDefaultsElement.ChildElements.Item("bindings").Collection;
var bindingElement = bindingsCollection.CreateNewElement("binding");
bindingElement.Properties.Item("protocol").Value = "http";
bindingElement.Properties.Item("bindingInformation").Value = "127.0.0.1:8080:";
bindingsCollection.AddElement(bindingElement);

adminManager.CommitChanges();

VBScript

Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set sitesSection = adminManager.GetAdminSection("system.applicationHost/sites", "MACHINE/WEBROOT/APPHOST")
Set siteDefaultsElement = sitesSection.ChildElements.Item("siteDefaults")

Set bindingsCollection = siteDefaultsElement.ChildElements.Item("bindings").Collection
Set bindingElement = bindingsCollection.CreateNewElement("binding")
bindingElement.Properties.Item("protocol").Value = "http"
bindingElement.Properties.Item("bindingInformation").Value = "127.0.0.1:8080:"
bindingsCollection.AddElement(bindingElement)

adminManager.CommitChanges()