Visual Studio의 "서비스 참조 추가"기능을 사용하여 클라이언트가 참조 할 수 있도록 WCF 서비스가 있습니다. 그들은 메타 데이터 엔드 포인트를 인식 할 수 있었고, 인터페이스, 메소드 및 데이터 유형은 Add Service Reference 대화 상자에 표시되며, 문제없이 프록시를 성공적으로 생성하는 것처럼 보입니다. 그러나 생성 된 코드 파일을 보거나 객체 브라우저에는 ServiceContract에서 생성 된 서비스 인터페이스가 없습니다. DataContracts 만 나타납니다. 명령 행에서 동일한 엔드 포인트 URL에서 svcutil을 가리킬 때 생성 된 파일 은 인터페이스를 포함하는입니다.왜 VS "서비스 참조 추가"가 servicecontracts에 대한 인터페이스를 생성하지 않아서 svcutil이 잘 인식합니까?
- 서비스 자체가 잠시 동안 생산에 사용하고 잘 작동하는 것 같다되었습니다
- 그것은 사용자 정의 바인딩을 사용하지만, 동일한 바인딩 구성 (및 기타 구성 설정) 것 같다 다른 서비스에 사용되는 서비스 추가 참조를 사용하여 정상적으로 작동하려면
- 이 다른 것은입니다.이 서비스는 사용자 지정 동작 (IServiceBehavior에서 파생 된 특성)을 사용합니다. 인터페이스는 구체적인 서비스 유형과는 다른 어셈블리에 있지만 데이터 계약도 마찬가지입니다.
업데이트 : 어떻게 든 간과하려는 문제를 일으키는 것으로 보인다 무엇 , 거기에이 인터페이스의 방법 중 일부에 대한 FaultContracts은,이 FaultContracts은 예외 유형을 참조하는 것입니다 [Serializable], [DataContract] 아닙니다 (나는 Exception에서 파생 된 모든 것이 있어야한다고 생각합니다). 예외 유형 자체는 생성 된 코드에 표시되지만 public 속성은 없습니다 (svcutil 또는 ASR 생성 코드에서)
테스트에서 이러한 차이점을 제거하고 문제가 지속되는지 확인하십시오. –
물어보기 전에 해봤어야했는데, 나를 부끄럽게 만들었다. 서비스 참조 추가는 여전히 서비스 인터페이스에 대한 코드를 생성하지 않습니다. –