Outil d'inscription ServiceModel (ServiceModelReg.exe)

Cet outil de ligne de commande permet de gérer l'inscription de ServiceModel sur un ordinateur unique.

ServiceModelReg.exe [-i[r | ru] | -u | -ua | -r | -s:<path> | -sn:<path> | -k:<path> | -kn:<path> | -lv | -lk | -vi] [-q | -v] [-nologo] [-?]

Notes

Cet outil se trouve à l'emplacement suivant :

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

ms732012.note(fr-fr,VS.90).gifRemarque :
Lorsque l'outil d'inscription ServiceModel est exécuté sur Windows Vista, la boîte de dialogue Fonctionnalités de Windows peut ne pas refléter le fait que l'option Activation HTTP de Windows Communication Foundation sous Microsoft .NET Framework 3.0 est activée. La boîte de dialogue Fonctionnalités de Windows est accessible en cliquant sur Démarrer, puis sur Exécuter et en tapant OptionalFeatures.

Les tableaux suivants décrivent les options qui peuvent être utilisées avec ServiceModelReg.exe.

Option Description

-i

Enregistre cette version de WCF et met à jour les scriptmaps à la racine de la métabase IIS (Internet Information Services) et en dessous. Les scriptmaps des versions antérieures sont mis à jour vers cette version.

-ir

Enregistre cette version de WCF, uniquement. N'installe pas les scriptmaps WCF dans IIS.

-iru

Enregistre cette version de WCF. Si certaines applications existantes utilisent WCF, ne mettez pas à jour leur scriptmaps dans IIS.

-u

Annule l'enregistrement de cette version de WCF. Les scriptmaps existants correspondant à cette version sont remappés vers la version la plus élevée de WCF installée sur l'ordinateur.

-ua

Annule l'enregistrement de toutes les versions de WCF présentes sur l'ordinateur.

-r

Réenregistre cette version de WCF et met à jour les scriptmaps à la racine de la métabase IIS, ainsi que pour tous les scriptmaps situés sous la racine. Vous pouvez effectuer une mise à niveau des scriptmaps vers cette version, quelle que soit la version d'origine.

-s:<chemin d'accès>

Enregistre les scriptmaps pour cette version de WCF dans le chemin d'accès spécifié, de façon récursive.

-sn:<chemin d'accès>

Enregistre les scriptmaps pour cette version de WCF dans le chemin d'accès spécifié, de façon non récursive.

-k:<chemin d'accès>

Supprime tous les scriptmaps de toutes les versions de WCF du chemin d'accès spécifié, de façon récursive.

-kn:<chemin d'accès>

Supprime tous les scriptmaps de toutes les versions de WCF du chemin d'accès spécifié, de façon non récursive.

-lv

Répertorie toutes les versions de WCF enregistrées sur l'ordinateur, avec l'état et chemin d'installation.

-lk

Répertorie les chemins d'accès de toutes les clés de la métabase IIS où WCF est mappé, en spécifiant la version. Les clés qui héritent des scriptmaps WCF d'une clé parente ne sont pas affichées.

-vi

Vérifie l'installation de composants cibles et génère un rapport. Les composants peuvent porter les états suivants : inconnu, non installe, installation par défaut ou installation personnalisée.

-y

Ne demandez pas de confirmation avant d'enregistrer des composants ou d'annuler leur enregistrement.

-q

Mode silencieux (sortie réduite).

-v

Mode documenté.

-nologo

Supprime le message de copyright et de bannière.

Résolution de l'erreur FileLoadException

Si vous avez installé des versions antérieures de WCF sur votre ordinateur, vous pouvez recevoir un message d'erreur FileLoadFoundException lorsque vous exécutez l'outil ServiceModelReg pour enregistrer une nouvelle installation. Cela peut se produire même si vous avez supprimé manuellement les fichiers de la précédente installation, mais que vous avez conservé les paramètres machine.config.

Le message d'erreur est semblable au message suivant.

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'

Ce message d'erreur indique que l'assembly de la version 2.0.0.0 de System.ServiceModel a été installé par une version antérieure de CTP (Customer Technology Preview). La version actuelle de l'assembly System.ServiceModel est la version 3.0.0.0. Par conséquent, vous rencontrerez ce problème lorsque vous souhaiterez installer WCF (version officielle) sur un ordinateur sur lequel une version CTP antérieure de WCF a été installée, mais n'a pas été complètement désinstallée.

ServiceModelReg.exe ne peut pas nettoyer les entrées de versions antérieures ; il ne peut pas non plus enregistrer les entrées de la nouvelle version. La seule solution consiste à modifier manuellement le fichier machine.config. Vous trouverez ce fichier à l'emplacement suivant :

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

Si vous exécutez WCF sur un ordinateur 64 bits, vous devez également modifier le même fichier à cet emplacement.

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

Recherchez dans ce fichier tous les nœuds XML qui font référence à System.ServiceModel, Version=2.0.0.0, puis supprimez-les, ainsi que tous les nœuds enfants. Enregistrez le fichier et réexécutez ServiceModelReg.exe afin de résoudre ce problème.

Exemples

Les exemples suivants indiquent comment utiliser les options -s et -k de l'outil ServiceModelReg.exe.

ServiceModelReg.exe -s:W3SVC/1/ROOT/SampleApp1
ServiceModelReg.exe -k:W3SVC/1/ROOT/SampleApp1