2011-10-04 7 views
2

나는 다음과 같은 WCF 인터페이스있다 :WCF의 ServiceContract 네임 스페이스 업데이트

[ServiceContract] 
public interface IUser 
{ 
    [OperationContract] 
    string GetUser(); 
} 

나는이 일 변경 :

[ServiceContract(Namespace = "http://user.com")] 
public interface IUser 
{ 
    [OperationContract] 
    string GetUser(); 
} 

대상 XML 네임 스페이스는 사용자에게 기본 tempuri.org에서 변경되었습니다. com

이렇게하면 wsdl이 다르므로 기존 클라이언트의 호출이 중단됩니다.

이 네임 스페이스를 구성 파일에 지정하는 방법이 있습니까? 이렇게하면 기존 클라이언트의 이전 네임 스페이스를 유지하고 WS를 업그레이드 할 수 있습니다.

답변

1

서비스를 배포 할 때 쉽게 놓칠 수있는 매우 정직한 실수입니다. msdn 포럼에서이 스레드를 찾았습니다. 트릭을 수행 할 수도 있습니다.

아이디어는 매우 간단합니다 (올바른 네임 스페이스가있는) 새 서비스 계약 인터페이스를 만들고 기존 서비스 계약 (기본 네임 스페이스 사용)에서 상속합니다. 서비스 클래스가 새 서비스 계약을 구현하도록하고 클라이언트에게 엔드 포인트를 새 서비스 계약으로 변경하도록 요청하십시오.

URL : http://social.msdn.microsoft.com/Forums/en/wcf/thread/2bb09d41-7ee7-4e9d-bea8-95bd318a4247.