2011-06-11 3 views
1

현재 내 경로 테이블에는 이와 비슷한 것이 있습니다. WCF Web API 또는 일반 WCF에서 버전 관리를 처리 할 수있는 더 좋은 방법이 있습니까?WCF Http RouteTables (버전 관리 용)

RouteTable.Routes.MapServiceRoute<Service1>("1.0/Route1", Config1); 
RouteTable.Routes.MapServiceRoute<Service2>("1.0/Route2", Config2); 
RouteTable.Routes.MapServiceRoute<Service3>("1.0/Route3", Config3); 
RouteTable.Routes.MapServiceRoute<Service4>("1.0/Route4", Config4); 

답변

0

당신은 그렇게 할 수 있지만, 그것은 매우 프로토콜 바인딩이 경우 HTTP에,을. 프로토콜에 대해 그렇게 걱정하지 않고 그렇게 할 수있는 방법이 있는지 궁금합니다. 이상적으로 우리는 단지 한 번만하고 싶지 만 거기 밖으로 나가는 각 수송을 위해서가 아닙니다. 다행히도 방법이 있습니다, 설명하겠습니다.

하루가 끝날 때 귀하의 WCF 내부는 이어야합니다 (프로토콜 불가지론). 그 말은 서비스에서 메서드가 호출 될 때까지 REST, TCP, HTTP 또는 명명 된 파이프이 있는지 여부를 신경 쓰지 않아야합니다.

WCF에서 이것은 매우 쉽고 버전 관리도 쉽습니다. 버전 관리를 사용하면 특히 WCF와 관련이없는 경우 .NET 인터페이스 버전 관리에 대해 많은 것을 배울 수 있습니다. 아이디어는 서비스가 실현해야한다는 것입니다 :

interface ISomething1 { ... } 

나중에 새로운 방법이나 변경이 필요한 때 수행해야합니다

그것은 설정에서 2 엔드 포인트와 서비스를 게시 한 후 간단한 문제입니다
interface ISomething2 : ISomething1 { void SomethingNew (...) } 

, 하나는 이고, 다른 하나는이고 다른 하나는 입니다. ISomething2입니다.