Ferramenta de registro de ServiceModel (ServiceModelReg.exe)

Essa ferramenta de linha de comando fornece a capacidade de gerenciar o registro de componentes do WCF e do WF em um único computador. Em circunstâncias normais, você não deve precisar usar essa ferramenta, pois os componentes do WCF e do WF são configurados quando instalados. Porém, se você estiver enfrentando problemas com a ativação do serviço, poderá tentar registrar os componentes usando essa ferramenta.

Sintaxe

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

Comentários

A ferramenta pode ser encontrada nos seguintes locais:

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

Observação

Quando a Ferramenta de Registro ServiceModel é executada no Windows Vista, a caixa de diálogo Recursos do Windows poderá não refletir que a opção Ativação HTTP do Windows Communication Foundation no Microsoft .NET Framework 3.0 está ativada. A caixa de diálogo Recursos do Windows pode ser acessada clicando em Iniciar, em seguida, clique em Executar e digitando OptionalFeatures.

As tabelas a seguir descrevem as opções que podem ser usadas com ServiceModelReg.exe.

Opção Descrição
-ia Instala todos os componentes do WCF e do WF.
-ua Desinstala todos os componentes do WCF e do WF.
-r Repara todos os componentes do WCF e do WF.
-i Instala os componentes do WCF e do WF especificados com –c.
-u Desinstala os componentes do WCF e do WF especificados com –c.
-c Instala ou desinstala um componente:

– httpnamespace –reserva de namespace HTTP
– tcpportsharing – serviço de compartilhamento de porta TCP
– tcpactivation – serviço de ativação TCP (sem suporte no perfil do cliente .NET 4)
– namedpipeactivation – Serviço de ativação de pipe nomeado (sem suporte no perfil do cliente .NET 4)
– msmqactivation – serviço de ativação MSMQ (sem suporte no perfil do cliente .NET 4)
– etw – manifestos de rastreamento de eventos ETW (Windows Vista ou posterior)
-q Modo silencioso (somente registro em log de erros de exibição)
-v Modo detalhado.
-nologo Suprime a mensagem de copyright e de banner.
-? Exibe o texto da ajuda

Corrigindo o erro FileLoadException

Se você instalou versões anteriores do WCF em seu computador, poderá receber um erro FileLoadFoundException ao executar a ferramenta ServiceModelReg para registrar uma nova instalação. Isso pode acontecer mesmo se você tiver removido manualmente os arquivos da instalação anterior, mas deixado as configurações de machine.config intactas.

A mensagem de erro é semelhante à seguinte.

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'  

Você deve observar na mensagem de erro que o assembly System.ServiceModel Versão 2.0.0.0 foi instalado por uma versão inicial do CTP (Customer Technology Preview). Em vez disso, a versão atual do assembly System.ServiceModel lançada é 3.0.0.0. Portanto, esse problema é encontrado quando você deseja instalar a versão oficial do WCF em um computador em que uma versão CTP antecipada do WCF foi instalada, mas não completamente desinstalada.

ServiceModelReg.exe não pode limpar entradas de versão anteriores nem pode registrar as entradas da nova versão. A única solução alternativa é editar manualmente o arquivo machine.config, que você pode localizar no local a seguir.

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

Se você estiver executando o WCF em um computador de 64 bits, também deverá editar o mesmo arquivo nesse local.

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

Localize e exclua todos os nós XML nesse arquivo que se referem a “System.ServiceModel, Version=2.0.0.0”, assim como todos os nós filho. Salvar o arquivo e executar novamente ServiceModelReg.exe resolverá esse problema.

Exemplos

Os exemplos a seguir mostram como usar as opções mais comuns da ferramenta 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