Средство регистрации ServiceModel (ServiceModelReg.exe)

Это средство командной строки предоставляет возможность управлять регистрацией компонентов WCF и WF на одном компьютере. В обычных условиях не следует использовать это средство, так как компоненты WCF и WF настраиваются при установке. Но если у вас возникли проблемы с активацией службы, вы можете попытаться зарегистрировать компоненты с помощью этого средства.

Синтаксис

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

Замечания

Средство можно найти в следующем расположении:

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

Замечание

При запуске средства регистрации ServiceModel в Windows Vista диалоговое окно "Компоненты Windows " может не отражать, что включен параметр активации HTTP Windows Communication Foundation в Microsoft .NET Framework 3.0 . Диалоговое окно "Компоненты Windows " можно получить, нажав кнопку "Пуск", а затем нажмите кнопку "Запустить ", а затем введите "Необязательныеfeatures".

В следующих таблицах описаны параметры, которые можно использовать с ServiceModelReg.exe.

Вариант Description
-ia Устанавливает все компоненты WCF и WF.
-ua Удаляет все компоненты WCF и WF.
-r Восстанавливает все компоненты WCF и WF.
-i Устанавливает компоненты WCF и WF, указанные с помощью -c.
-u Удаляет компоненты WCF и WF, указанные с помощью -c.
-c Устанавливает или удаляет компонент:

— httpnamespace — резервирование пространства имен HTTP
— tcpportsharing — служба общего доступа к TCP-порту
— tcpactivation — служба активации TCP (неподдерживаемая в профиле клиента .NET 4)
- namedpipeactivation — служба активации именованного канала (неподдерживаемая в профиле клиента .NET 4
— msmqactivation — служба активации MSMQ (неподдерживаемая в профиле клиента .NET 4
— etw — манифесты трассировки событий ETW (Windows Vista или более поздней версии)
-q Спокойный режим (только ведение журнала ошибок)
-v Режим подробного вывода.
-nologo Подавляет сообщение об авторских правах и баннерах.
-? Отображает текст справки

Исправление ошибки FileLoadException

При установке предыдущих версий WCF на компьютере может возникнуть FileLoadFoundException ошибка при запуске средства ServiceModelReg для регистрации новой установки. Это может произойти, даже если вы вручную удалили файлы из предыдущей установки, но оставили параметры machine.config нетронутыми.

Сообщение об ошибке похоже на следующее.

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'

Обратите внимание на сообщение об ошибке о том, что сборка System.ServiceModel версии 2.0.0.0.0 была установлена ранним выпуском CTP. Текущая версия сборки System.ServiceModel— 3.0.0.0. Поэтому эта проблема возникает, когда вы хотите установить официальный выпуск WCF на компьютере, где был установлен ранний выпуск WCF CTP, но не полностью удален.

ServiceModelReg.exe не удается очистить предыдущие записи версии, а также не может зарегистрировать записи новой версии. Единственным решением является изменение machine.configвручную. Этот файл можно найти в следующем расположении.

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

При запуске WCF на 64-разрядном компьютере также следует изменить тот же файл в этом расположении.

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

Найдите все XML-узлы в этом файле, ссылающиеся на System.ServiceModel, Version=2.0.0.0, удалите их и все дочерние узлы. Сохраните файл и повторно запустите ServiceModelReg.exe устраняет эту проблему.

Примеры

В следующих примерах показано, как использовать наиболее распространенные параметры средства 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