서비스 메타데이터에서 WCF 클라이언트 생성
이 항목에서는 Svcutil.exe의 여러 가지 스위치를 사용하여 메타데이터 문서에서 클라이언트를 생성하는 방법에 대해 설명합니다.
메타데이터 문서는 지속적인 저장소에 있거나 온라인으로 검색할 수 있습니다. 온라인 검색은 WS-MetadataExchange 프로토콜이나 Microsoft Discovery(DISCO) 프로토콜을 따릅니다. Svcutil.exe는 다음 메타데이터 요청을 생성하고 동시에 메타데이터를 검색합니다.
- 제공된 주소에 대한 WS-MetadataExchange(MEX) 요청
- /mex가 추가된 제공된 주소에 대한 MEX 요청
- ASP.NET 웹 서비스에서 DiscoveryClientProtocol(영문 페이지일 수 있음)을 사용하여 주어진 주소에 대한 DISCO 요청
Svcutil.exe는 WSDL(웹 서비스 기술 언어)을 기반으로 하는 클라이언트 또는 서비스로부터 받은 정책 파일을 생성합니다. UPN(User Principal Name)은 사용자 이름을 "@"으로 연결한 다음 FQDN(정규화된 도메인 이름)을 추가하여 생성합니다. 그러나 Active Directory에 등록한 사용자의 경우에는 이 형식은 유효하지 않으며 도구에서 생성한 UPN으로 인해 **로그온하지 못했습니다.**라는 오류 메시지와 함께 Kerberos 인증 오류가 발생합니다. 이 문제를 해결하려면 이 도구에서 생성한 클라이언트 파일을 수동으로 수정합니다.
svcutil.exe [/t:code] <metadataDocumentPath>* | <url>* | <epr>
형식 참조 및 공유
옵션 | 설명 |
---|---|
/reference:<file path> |
지정한 어셈블리에서 형식을 참조합니다. 클라이언트를 생성할 때 이 옵션을 사용하여 가져오는 메타데이터를 나타내는 형식이 포함될 수 있는 어셈블리를 지정합니다. 약식: /r |
/excludeType:<type> |
참조된 계약 형식에서 제외할 정규화된 형식 이름 또는 정규화된 어셈블리 형식 이름을 지정합니다. 약식: /et |
Serializer 선택
옵션 | 설명 |
---|---|
/serializer:Auto |
serializer를 자동으로 선택합니다. DataContract serializer가 사용됩니다. 이 작업에 실패할 경우 XmlSerializer가 사용됩니다. 약식: /ser:Auto |
/serializer:DataContractSerializer |
serialization 및 deserialization을 위해 DataContract serializer를 사용하는 데이터 형식을 생성합니다. 약식: /ser:DataContractSerializer |
/serializer:XmlSerializer |
serialization 및 deserialization을 위해 XmlSerializer를 사용하는 데이터 형식을 생성합니다. 약식: /ser:XmlSerializer |
/importXmlTypes |
비 DataContract 형식을 IXmlSerializable 형식으로 가져오도록 DataContract serializer를 구성합니다. 약식: /ixt |
/dataContractOnly |
DataContract 형식 전용 코드를 생성합니다. ServiceContract 형식이 생성됩니다. 이 옵션에 대한 로컬 메타데이터 파일만 지정해야 합니다. 약식: /dconly |
클라이언트에 대한 언어 선택
옵션 | 설명 |
---|---|
/language:<language> |
코드 생성에 사용할 프로그래밍 언어를 지정합니다. Machine.config 파일에 등록된 언어 이름 또는 CodeDomProvider에서 상속된 클래스의 정규화된 이름을 입력합니다. 값: c#, cs, csharp, vb, vbs, visualbasic, vbscript, javascript, c++, mc, cpp 기본값: csharp 약식: /l 자세한 내용은 CodeDomProvider 클래스(영문 페이지일 수 있음)를 참조하십시오. |
클라이언트에 대한 네임스페이스 선택
옵션 | 설명 |
---|---|
/namespace:<string,string> |
WSDL 또는 XML 스키마 targetNamespace에서 CLR(공용 언어 런타임) 네임스페이스로 매핑을 지정합니다. targetNamespace에 와일드카드(*)를 사용하여 해당 CLR 네임스페이스에 명시적으로 매핑하지 않고 모든 targetNamespaces를 매핑합니다. 메시지 계약 이름이 작업 이름과 충돌하지 않도록 하려면 이중 콜론(::)을 사용하여 형식 참조를 한정하거나 이름이 고유한지 확인합니다. 기본값: DataContracts에 대한 스키마 문서의 대상 네임스페이스에서 파생됩니다. 기본 네임스페이스는 생성된 다른 모든 형식에 사용됩니다. 약식: /n |
데이터 바인딩 선택
옵션 | 설명 |
---|---|
/enableDataBinding |
모든 DataContract 형식에 INotifyPropertyChanged 인터페이스를 구현하여 데이터 바인딩을 사용할 수 있습니다. 약식: /edb |
구성 생성
옵션 | 설명 |
---|---|
/config:<configFile> |
생성된 구성 파일에 대한 파일 이름을 지정합니다. 기본값: output.config |
/mergeConfig |
기존 파일을 덮어쓰는 대신 생성된 구성을 기존 파일에 병합합니다. |
/noConfig |
구성 파일을 생성하지 않습니다. |