WebSocketModule no se carga cuando se usan WebSockets con WCF 4.5 o ASP.NET en IIS 8.0

Este artículo le ayuda a resolver el error (WebSocketModule no está cargado) que se produce cuando la característica protocolo WebSocket no está habilitada en Microsoft Internet Information Services (IIS) 8.0.

Versión del producto original:   Internet Information Services 8.0, ASP.NET en .NET Framework 4.5.2
Número KB original:   2778043

Síntomas

El siguiente mensaje de error se produce cuando intenta comunicarse con un servicio de Windows Communication Foundation (WCF) configurado con (para WebSockets) o un sitio web de ASP.NET a través del protocolo WebSockets cuando se hospeda en NetHttpBinding IIS 8.0:

WebSocketModule no está cargado. Compruebe si la característica WebSocket está instalada y WebSocketModule está habilitado en la lista de módulos de IIS (consulte https://go.microsoft.com/fwlink/?LinkId=231398 para obtener más información).

Causa

Este problema puede producirse si la característica protocolo WebSocket no está habilitada en IIS 8.0.

Solución

Para resolver este problema, habilite la característica protocolo WebSocket en IIS 8.0. Para ello, elija una de las siguientes opciones:

  1. Desde un símbolo del sistema administrativo, ejecute el siguiente comando:

    %SystemRoot%\system32\dism.exe /online /enable-feature /featurename:IIS-WebSockets
    
  2. Para habilitar la característica protocolo WebSocket con la interfaz de usuario en Windows 8, vaya Internet Information Services a Programas del Panel de control Activar o desactivar Windows las características de desarrollo de aplicaciones de world wide web services del protocolo > > > > > > WebSocket.

  3. Para habilitar la característica protocolo WebSocket con la interfaz de usuario en Windows Server 2012, vaya al Protocolo > > > > WebSocket de desarrollo de aplicaciones de servidor web de roles de servidor web (IIS).

  4. Para habilitar la característica protocolo WebSocket con una tarea de inicio en Azure:

    • Cree un archivo Startup.cmd con el siguiente comando en el proyecto de servicio en la nube:

      %SystemRoot%\system32\dism.exe /online /enable-feature /featurename:IIS-WebSockets
      
    • Establece Acción de compilación en Ninguno y establece Copiar en directorio de salida en Copiar siempre en este archivo Startup.cmd.

    • Agregue lo siguiente en el archivo ServiceDefinition.csdef:

    <Startup>
        <Task commandLine="Startup.cmd"
        executionContext="elevated" taskType="simple"/>
    </Startup>