다음을 통해 공유


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(ko-kr,VS.100).gif참고:
ServiceModel 등록 도구가 Windows Vista에서 실행되는 경우 Windows 기능 대화 상자는 Microsoft .NET Framework 3.0Windows Communication Foundation HTTP 활성화 옵션이 켜져 있음을 나타내지 않을 수도 있습니다. Windows 기능 대화 상자에 액세스하려면 시작, 실행을 차례로 클릭한 다음 OptionalFeatures를 입력합니다.

다음 표에서는 ServiceModelReg.exe와 함께 사용할 수 있는 옵션을 보여 줍니다.

옵션 설명

-i

이 WCF 버전을 등록하고 IIS(인터넷 정보 서비스) 메타베이스 루트의 스크립트 맵 및 루트 아래의 모든 스크립트 맵을 업데이트합니다. 낮은 버전의 기존 스크립트 맵이 이 버전으로 업그레이드됩니다.

-ir

이 WCF 버전을 등록합니다. 등록만 가능합니다. IIS에 WCF 스크립트 맵을 설치하지 않습니다.

-iru

이 WCF 버전을 등록합니다. 기존 응용 프로그램이 WCF를 사용하면 IIS의 해당 스크립트 맵은 업데이트하지 않습니다.

-u

이 WCF 버전을 등록 취소합니다. 이 버전에 대한 기존 스크립트 맵은 컴퓨터에 설치되어 있는 남은 WCF 중 가장 높은 버전에 다시 매핑됩니다.

-ua

컴퓨터에서 모든 WCF 버전을 등록 취소합니다.

-r

이 WCF 버전을 다시 등록하고 IIS 메타베이스 루트의 스크립트 맵 및 루트 아래의 모든 스크립트 맵을 업데이트합니다. 원래 버전과 상관없이 기존 스크립트 맵은 이 버전으로 업그레이드됩니다.

-s:<경로>

지정한 경로에서 이 WCF 버전에 대한 스크립트 맵을 재귀적으로 등록합니다.

-sn:<경로>

지정한 경로에서 이 WCF 버전에 대한 스크립트 맵을 비재귀적으로 등록합니다.

-k:<경로>

지정한 경로에서 모든 WCF 버전에 대한 모든 스크립트 맵을 재귀적으로 제거합니다.

-kn:<경로>

지정한 경로에서 모든 WCF 버전에 대한 모든 스크립트 맵을 비재귀적으로 제거합니다.

-lv

컴퓨터에 등록되어 있는 WCF의 모든 버전을 상태 및 설치 경로와 함께 나열합니다.

-lk

WCF가 스크립트 매핑되어 있는 모든 IIS 메타베이스 키의 경로를 버전과 함께 나열합니다. 부모 키에서 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(Customer Technology Preview) 릴리스에 의해 설치되었습니다. 릴리스된 System.ServiceModel 어셈블리의 현재 버전은 3.0.0.0입니다. 따라서 WCF의 초기 CTP 릴리스가 설치되었지만 완전히 제거되지 않은 컴퓨터에 WCF의 공식 릴리스를 설치하려는 경우 이 문제가 발생합니다.

ServiceModelReg.exe는 이전 버전의 항목을 정리할 수 없으며 새 버전의 항목을 등록할 수도 없습니다. 유일한 해결 방법은 수동으로 machine.config를 편집하는 것입니다. 다음 위치에서 이 파일을 찾을 수 있습니다.

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

또한 64비트 컴퓨터에서 WCF를 실행하는 경우 이 위치에서 동일한 파일을 편집해야 합니다.

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

이 파일에서 "System.ServiceModel, Version=2.0.0.0"을 참조하는 모든 XML 노드를 찾아 해당 노드 및 모든 자식 노드를 삭제합니다. 파일을 저장하고 ServiceModelReg.exe를 다시 실행하면 이 문제가 해결됩니다.

예제

다음 예제에서는 ServiceModelReg.exe 도구의 -s-k 옵션을 사용하는 방법을 보여 줍니다.

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