Herramienta de registro de ServiceModel (ServiceModelReg.exe)

Esta herramienta de la línea de comandos proporciona la capacidad de administrar el registro de componentes de WCF y de WF en un único equipo. En circunstancias normales no debería ser necesario usar esta herramienta mientras se configuran e instalan los componentes de WCF y de WF. Pero si experimenta problemas con la activación del servicio, puede intentar registrar los componentes mediante esta herramienta.

Sintaxis

ServiceModelReg.exe[(-ia|-ua|-r)|((-i|-u) -c:<command>)] [-v|-q] [-nologo] [-?]  

Comentarios

La herramienta se puede encontrar en la ubicación siguiente:

%SystemRoot%\Microsoft.Net\Framework\v3.0\Windows Communication Foundation\

Nota

Cuando la herramienta de registro de ServiceModel se ejecuta en Windows Vista, puede que el cuadro de diálogo Características de Windows no refleje que está activada la opción Activación HTTP de Windows Communication Foundation en Microsoft .NET Framework 3.0. Para acceder al cuadro de diálogo Características de Windows, haga clic en Inicio, elija Ejecutar y escriba OptionalFeatures.

Las tablas siguientes describen las opciones que se pueden utilizar con ServiceModelReg.exe.

Opción Descripción
-ia Instala todos los componentes de WCF y de WF.
-ua Desinstala todos los componentes de WCF y de WF.
-r Repara todos los componentes de WCF y de WF.
-i Instala los componentes de WCF y de WF especificados con –c.
-u Desinstala los componentes de WCF y de WF especificados con –c.
-c Instala o desinstala un componente:

- httpnamespace: reserva de espacio de nombres HTTP
- tcpportsharing: servicio de uso compartido de puertos TCP
- tcpactivation: servicio de activación de TCP (no admitido en .NET 4 Client Profile)
- namedpipeactivation: servicio de activación de canalizaciones con nombre (no admitido en .NET 4 Client Profile)
- msmqactivation: servicio de activación de MSMQ (no admitido en .NET 4 Client Profile)
- etw: manifiestos de seguimiento de eventos de ETW (Windows Vista o posterior)
-q Modo silencioso (solo se muestra el registro de errores)
-v Modo detallado.
-nologo Suprime el mensaje del banner y el copyright.
-? Muestra texto de ayuda.

Corregir el error FileLoadException

Si ha instalado versiones anteriores de WCF en la máquina, puede obtener un error FileLoadFoundException al ejecutar la herramienta ServiceModelReg para registrar una nueva instalación. Esto puede pasar aun cuando ha quitado manualmente los archivos de la instalación anterior, pero ha dejado intactos los valores machine.config.

El mensaje de error es similar al siguiente.

Error: System.IO.FileLoadException: Could not load file or assembly 'System.ServiceModel, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)  
File name: 'System.ServiceModel, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'  

Debería observar en el mensaje de error que el ensamblado de la versión 2.0.0.0 de System.ServiceModel fue instalado por un lanzamiento anterior de Customer Technology Preview (CTP). La versión actual del ensamblado System.ServiceModel que se ha lanzado es 3.0.0.0. Por tanto, encontrará este problema cuando desee instalar la versión oficial de WCF en una máquina donde se instaló una versión CTP anterior de WCF, pero no se desinstaló completamente.

ServiceModelReg.exe no puede limpiar las entradas de versión anteriores, ni puede registrar las entradas de la nueva versión. La única solución es editar manualmente el archivo machine.config. Puede encontrar este archivo en la siguiente ubicación.

%windir%\Microsoft.NET\Framework\v2.0.50727\config\machine.config

Si ejecuta WCF en una máquina de 64 bits, también debe modificar el mismo archivo en esta ubicación.

%windir%\Microsoft.NET\Framework64\v2.0.50727\config\machine.config

Busque los nodos XML del archivo que hagan referencia a "System.ServiceModel, Version=2.0.0.0", elimínelos y elimine también los nodos secundarios. Guarde el archivo y el problema se resolverá volviendo a ejecutar ServiceModelReg.exe.

Ejemplos

Los ejemplos siguientes muestran cómo usar las opciones más comunes de la herramienta ServiceModelReg.exe.

ServiceModelReg.exe -ia  
  Installs all components  
ServiceModelReg.exe -i -c:httpnamespace -c:etw  
  Installs HTTP namespace reservation and ETW manifests  
ServiceModelReg.exe -u -c:etw  
  Uninstalls ETW manifests  
ServiceModelReg.exe -r  
  Repairs an extended install