다음을 통해 공유


서비스 메타데이터에서 WCF 클라이언트 생성

이 항목에서는 Svcutil.exe 다양한 스위치를 사용하여 메타데이터 문서에서 클라이언트를 생성하는 방법을 설명합니다.

메타데이터 문서는 지속성 스토리지에 있거나 온라인으로 검색할 수 있습니다. 온라인 검색은 WS-MetadataExchange 프로토콜 또는 DISCO(Microsoft Discovery) 프로토콜을 따릅니다. Svcutil.exe 다음 메타데이터 요청을 동시에 실행하여 메타데이터를 검색합니다.

  • 제공된 주소에 대한 MEX(WS-MetadataExchange) 요청입니다.

  • 제공된 주소에 /mex가 추가된 상태로 MEX 요청을 보냅니다.

  • 제공된 주소로 ASP.NET 웹 서비스의 DiscoveryClientProtocol를 사용한 DISCO 요청.

Svcutil.exe 서비스에서 받은 WSDL(웹 서비스 설명 언어) 또는 정책 파일을 기반으로 클라이언트를 생성합니다. UPN(사용자 계정 이름)은 사용자 이름을 "@"로 연결한 다음 FQDN(정규화된 도메인 이름)을 추가하여 생성됩니다. 그러나 Active Directory에 등록한 사용자의 경우 이 형식은 유효하지 않으며 도구에서 생성하는 UPN은 다음 오류 메시지와 함께 Kerberos 인증에 실패합니다 . 로그온 시도가 실패했습니다. 이 문제를 해결하려면 도구에서 생성한 클라이언트 파일을 수동으로 수정합니다.

svcutil.exe [/t:code]  <metadataDocumentPath>* | <url>* | <epr>  

참조 및 공유 형식

옵션 설명
/reference:<파일 경로> 지정된 어셈블리에서 참조하는 형식들. 클라이언트를 생성할 때 이 옵션을 사용하여 가져올 메타데이터를 나타내는 형식을 포함할 수 있는 어셈블리를 지정합니다.

짧은 형식: /r
/excludeType:<type> 참조된 계약 형식에서 제외해야 할 정규화된 형식 또는 어셈블리 정규화된 형식 이름을 지정합니다.

짧은 형식: /et

직렬 변환기 선택

옵션 설명
/serializer:Auto 직렬 변환기를 자동으로 선택합니다. 이것은 DataContract 직렬 변환기를 사용합니다. 이 작업이 실패하면 XmlSerializer 사용됩니다.

짧은 형식: /ser:Auto
/serializer:DataContractSerializer DataContract serializer를 사용하여 serialization 및 deserialization을 수행하는 데이터 타입을 생성합니다.

짧은 형식: /ser:DataContractSerializer
/serializer:XmlSerializer serialization 및 deserialization에 XmlSerializer 사용하는 데이터 형식을 생성합니다.

짧은 형식: /ser:XmlSerializer
/importXmlTypes DataContract serializer를 구성하여 DataContract이 아닌 형식을 IXmlSerializable 형식으로 가져옵니다.

짧은 형식: /ixt
/dataContractOnly DataContract 형식의 코드만 생성합니다. ServiceContract 형식이 생성됩니다.

이 옵션에는 로컬 메타데이터 파일만 지정해야 합니다.

짧은 형식: /dconly

클라이언트에 대한 언어 선택

옵션 설명
/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에 와일드카드(*)를 사용하면 명시적 매핑 없이 모든 targetNamespaces가 해당 CLR 네임스페이스로 매핑됩니다.

메시지 계약 이름이 작업 이름과 충돌하지 않도록 하려면 형식 참조를 이중 콜론(::)으로 한정하거나 이름이 고유한지 확인합니다.

기본값: 스키마 문서의 DataContracts대상 네임스페이스에서 파생됩니다. 기본 네임스페이스는 생성된 다른 모든 형식에 사용됩니다.

짧은 형식: /n

데이터 바인딩 선택

옵션 설명
/enableDataBinding 데이터 바인딩을 INotifyPropertyChanged 사용하도록 설정하기 위해 모든 DataContract 형식에 인터페이스를 구현합니다.

짧은 형식: /edb

구성 생성

옵션 설명
/config:<configFile> 생성된 구성 파일의 파일 이름을 지정합니다.

기본값: output.config
/mergeConfig 생성된 구성을 기존 파일을 덮어쓰는 대신 기존 파일에 병합합니다.
/noConfig 구성 파일을 생성하지 마세요.

참고하십시오