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

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

Синтаксис

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

Remarks

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

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

Примечание

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

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

Параметр Описание
-ia Устанавливает все компоненты WCF и WF.
-ua Удаляет все компоненты WCF и WF.
-r Ремонтирует все компоненты WCF и WF.
-i Устанавливает компоненты WCF и WF, заданные с помощью ключа «-с».
-u Удаляет компоненты WCF и WF, заданные с помощью ключа «-с».
-c Устанавливает или удаляет компонент.

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

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

Если вы установили предыдущие версии WCF на компьютере, при запуске средства ServiceModelReg для регистрации новой установки может возникнуть FileLoadFoundException ошибка. Это может произойти, даже если пользователь вручную удалил файлы из каталога установки предыдущей версии, но оставил файл 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 была установлена более ранней CTP-версией. Текущая версия сборки System.ServiceModel - 3.0.0.0. Поэтому эта проблема возникает, когда требуется установить официальный выпуск WCF на компьютере, где был установлен ранний выпуск CTP WCF, но не полностью удален.

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