ServiceModel Registration-Tool (ServiceModelReg.exe)
Dieses Befehlszeilentool bietet die Möglichkeit, die Registrierung von ServiceModel auf einem einzelnen Computer zu verwalten.
ServiceModelReg.exe [-i[r | ru] | -u | -ua | -r | -s:<path> | -sn:<path> | -k:<path> | -kn:<path> | -lv | -lk | -vi] [-q | -v] [-nologo] [-?]
Hinweise
Das Tool befindet sich an folgendem Speicherort:
%SystemRoot%\Microsoft.Net\Framework\v3.0\Windows Communication Foundation\
Hinweis: |
---|
Wird das ServiceModel-Registrierungstool unter Windows Vista ausgeführt, zeigt das Dialogfeld Windows-Funktionen möglicherweise nicht an, dass die Option Windows Communication Foundation-Http-Aktivierung unter Microsoft .NET Framework 3.0 aktiviert ist. Sie können das Dialogfeld Windows-Funktionen öffnen, indem Sie im Menü Start auf Ausführen klicken und dann OptionalFeatures eingeben. |
Die folgenden Tabellen beschreiben die Optionen, die mit ServiceModelReg.exe verwendet werden können.
Option | Beschreibung |
---|---|
-i |
Registriert diese Version von WCF und aktualisiert Skriptzuordnungen im Internet Information Services (IIS)-Metabasisstamm und für alle Skriptzuordnungen im Stammpfad. Vorhandene Skriptzuordnungen niedriger Versionen werden auf diese Version aktualisiert. |
-ir |
Registriert diese Version von WCF (nur Registrierung). WCF-Skriptzuordnungen in IIS werden nicht installiert. |
-iru |
Registriert diese Version von WCF. Wenn es vorhandene Anwendungen gibt, die WCF verwenden, aktualisieren Sie ihre Skriptzuordnungen in IIS nicht. |
-u |
Hebt die Registrierung dieser Version von WCF auf. Vorhandene Skriptzuordnungen dieser Version werden der höchsten verbleibenden Version von WCF neu zugeordnet, die auf dem Computer installiert ist. |
-ua |
Hebt die Registrierungen aller Versionen von WCF auf dem Computer auf. |
-r |
Registriert diese Version von WCF neu und aktualisiert Skriptzuordnungen im IIS-Metabasisstamm und für alle Skriptzuordnungen im Stammpfad. Vorhandene Skriptzuordnungen werden unabhängig von den ursprünglichen Versionen auf diese Version aktualisiert. |
-s:<-Pfad> |
Registriert Skriptzuordnungen für diese Version von WCF am angegebenen Pfad rekursiv. |
-sn:<-Pfad> |
Registriert Skriptzuordnungen für diese Version von WCF am angegebenen Pfad nicht rekursiv. |
-k:<-Pfad> |
Entfernt rekursiv alle Skriptzuordnungen einer Version von WCF vom angegebenen Pfad. |
-kn:<-Pfad> |
Entfernt nicht rekursiv alle Skriptzuordnungen einer Version von WCF vom angegebenen Pfad. |
-lv |
Listet alle Versionen von WCF mit Status und Installationspfad auf, die auf dem Computer registriert sind. |
-lk |
Listet zusammen mit der Version die Pfade aller IIS-Metabasisschlüssel auf, für die Skriptzuordnungen zu WCF bestehen. Schlüssel, die WCF-Skriptzuordnungen von einem übergeordneten Schlüssel erben, werden nicht angezeigt. |
-vi |
Überprüft die Installation von Zielkomponenten und generiert einen Bericht. Komponenten können folgende Zustände aufweisen: Unbekannt, Nicht installiert, Standardmäßig installiert oder Benutzerdefiniert installiert. |
-y |
Keine Bestätigungsmeldung vor dem Registrieren oder erneuten Registrieren von Komponenten anzeigen. |
-q |
Stiller Modus (beschränkte Ausgabe). |
-v |
Ausführlicher Modus. |
-nologo |
Die Copyright- und Bannermeldung werden unterdrückt. |
Beheben des FileLoadException-Fehlers
Wenn Sie frühere Versionen von WCF auf Ihrem Computer installiert haben, erhalten Sie unter Umständen einen FileLoadFoundException-Fehler, wenn Sie das ServiceModelReg-Tools ausführen, um eine neue Installation zu registrieren. Dies kann auch auftreten, wenn Sie Dateien von der vorherigen Installation manuell entfernt haben, aber die machine.config-Einstellungen unverändert gelassen haben.
Die Fehlermeldung lautet ungefähr folgendermaßen:
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'
Die Meldung sollte angeben, dass die System.ServiceModel Version 2.0.0.0-Assembly mit einer frühen CTP (Customer Technology Preview)-Version installiert wurde. Die aktuelle Version der System.ServiceModel-Assembly lautet jedoch 3.0.0.0. Dieser Fehler tritt auf, wenn Sie die offizielle Version von WCF auf einem Computer installieren möchten, auf dem bereits eine frühe CTP-Version von WCF installiert war, die jedoch nicht vollständig deinstalliert wurde.
ServiceModelReg.exe kann keine vorherigen Versionseinträge bereinigen und die Einträge der neuen Version nicht registrieren. Die einzige Problemumgehung ist die manuelle Bearbeitung von machine.config. Sie finden diese Datei am folgenden Speicherort.
%windir%\Microsoft.NET\Framework\v2.0.50727\config\machine.config
Wenn Sie WCF auf einem 64-Bit-Computer ausführen, sollten Sie die gleiche Datei ebenfalls an diesem Speicherort bearbeiten.
%windir%\Microsoft.NET\Framework64\v2.0.50727\config\machine.config
Suchen Sie XML-Knoten in dieser Datei, die sich auf "System.ServiceModel, Version=2.0.0.0" beziehen, und löschen Sie diese und alle untergeordneten Knoten. Speichern Sie die Datei, und führen Sie ServiceModelReg.exe erneut aus, um dieses Problem zu beheben.
Beispiele
In den folgenden Beispielen wird gezeigt, wie die -s-Option und -k-Option des Tools ServiceModelReg.exe verwendet werden.
ServiceModelReg.exe -s:W3SVC/1/ROOT/SampleApp1
ServiceModelReg.exe -k:W3SVC/1/ROOT/SampleApp1