Поделиться через


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

Эта программа командной строки предоставляет возможность управления регистрацией ServiceModel на одном компьютере.

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

Замечания

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

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

ms732012.note(ru-ru,VS.100).gifПримечание
При запуске средства регистрации ServiceModel в Windows Vista в диалоговом окне Компоненты Windows может отсутствовать информация о том, что параметр Активация Windows Communication Foundation по HTTP в разделе Microsoft .NET Framework 3.0 включен. Для доступа к диалоговому окну Компоненты Windows необходимо нажать кнопку Пуск, выбрать Выполнить и ввести OptionalFeatures.

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

Параметр Описание

-i

Регистрирует данную версию WCF и обновляет карты скриптов в корневом каталоге метабазы IIS, а также все карты скриптов, которые находятся в каталогах, расположенных под корневым. Существующие карты скриптов более ранних версий обновляются до данной версии.

-ir

Регистрирует данную версию WCF. Установка карт скриптов WCF в IIS не выполняется.

-iru

Регистрирует данную версию WCF. Если существуют какие-либо приложения, использующие WCF, не следует обновлять их карты скриптов в IIS.

-u

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

-ua

Отменяет регистрацию всех версий WCF на компьютере.

-r

Отменяет регистрацию данной версии WCF и обновляет карты скриптов в корневом каталоге метабазы IIS, а также все карты скриптов, которые находятся в каталогах, расположенных под корневым. Существующие карты скриптов обновляются до данной версии независимо от их исходных версий.

-s:<path>

Регистрирует карты скриптов для данной версии WCF в указанном каталоге рекурсивно.

-sn:<path>

Регистрирует карты скриптов для данной версии WCF в указанном каталоге нерекурсивно.

-k:<path>

Удаляет все карты скриптов для какой-либо версии WCF из указанного каталога рекурсивно.

-kn:<path>

Удаляет все карты скриптов для какой-либо версии WCF из указанного каталога нерекурсивно.

-lv

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

-lk

Отображает список путей к разделам метабазы IIS, где заданы карты скриптов для WCF, включающий информацию о версии. Разделы, наследующие карты скриптов WCF от родительского раздела, не отображаются.

-vi

Проверяет установку целевых компонентов и создает отчет. Компоненты могут находиться в следующих состояниях: "Неизвестно", "Не установлен", "Установлен (по умолчанию)" или "Установлен (выборочно)".

-y

Отключает запрос подтверждения перед регистрацией или отменой регистрации компонентов.

-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. Проблема устранена.

Примеры

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

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