2011-03-01 6 views
0

메시지를 받아들이고 메시지 (Action = "*")를 반환하는 IIS7에서 호스팅되는 범용 서비스가 있습니다. 이 서비스는 여전히 클라이언트 용 메타를 게시합니다.WCF 메타 데이터 게시 사용자 지정

이 메타 데이터는 ServiceMetadataBehavior의 LocationUrl 속성을 사용하여 명시 적으로 지정됩니다.

메타 데이터는 서비스 수명 기간 동안 변경 될 수 있으므로 본질적으로 메타 데이터는 수명이 있습니다.

IWsdlExportExtension을 서비스 끝점 동작에 추가하려고 시도했지만 ExportEndpoint 메서드는 한 번만 호출됩니다 (서비스가 처음로드 될 때). 내가 HttpGet을 사용하여 wsdl을 호출 할 때마다로드 된 메타 데이터를 무효화 할 수있는 방법이 있습니까?

답변

0

요청한 내용 (런타임에 게시 된 서비스 정의 변경)은 불가능합니다. 시간이 지남에 따라 메타 데이터가 변경 될 수 있음을 지정하는 요구 사항을 제거해야합니다.

일단 서비스를 게시하면 서비스가 업그레이드 된 유일한 이유는 서비스가 업그레이드 되었기 때문입니다.

이 기술 요구 사항을 필요로하는 비즈니스 요구 사항을 자세히 살펴보고이를 충족시킬 수있는 다른 방법을 찾으십시오 (아마도 programmers.stackexchange에 게시). 아마도 여러 서비스를 사용할 수 있고 시간이 지남에 따라 서비스간에 전환 할 수 있습니다. 그러나 비즈니스 요구 사항을 알지 못하면 어둠 속에서 조금 찌르는 것입니다.

0

아니요. 또한 필요한 경우 웹 서비스의 범위를 벗어나기 때문에 완전한 맞춤 솔루션까지 달려 있습니다. 메타 데이터를 변경한다는 것은 서비스 자체 = 내부 논리를 변경하여 호스팅 프로세스를 다시 시작하고 새로운 메타 데이터를 게시하는 것을 의미합니다.

+0

잘 서비스 자체는 다른 많은 서비스 (wcf 및 non wcf)의 외관 일 뿐이며 동적으로 이동합니다. –

+0

자, 라우터가 맞습니까? 이 경우 원본 WSDL을 라우팅해야합니다. –

+0

잘 서비스 버스처럼 –

관련 문제