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