2012-06-20 2 views
0

내 서비스에 추가 서비스 작업을 추가하는 서비스 동작을 만들고 싶습니다. 이렇게하면 내 서비스 (기존 및 미래)에 동작을 추가 할 수 있으며 내 서비스는 모두이 추가 서비스 작업을 수행 할 수 있습니다. (예 : ping 또는 다른 서비스 정보 반환)WCF 서비스 동작을 내 서비스에 추가하기

내가 원하는 것을 얻기 위해 무엇을해야할지 모르겠습니다. 지금까지 시도한 것은 서비스 수정을 시도하는 서비스 동작을 구현하는 것입니다. 기술. 끝점을 추가하고 그 위에 새 계약을 지정해야합니까?

 

public class MyOperationBehavior : IServiceBehavior 
{ 
    void IServiceBehavior.ApplyDispatchBehavior(
        ServiceDescription desc, ServiceHostBase host) 
    { 
     ServiceEndpointCollection sec = svcDesc.Endpoints; 
     ServiceEndpoint se = new ServiceEndpoint() 
     { 
      se.Address = "DoMyOperation"; 
      se.Binding = "basicHttpBinding"; 
      se.Contract = MyCustomContract;   
     } 

    } 
} 
 
+0

당신이 여분의 작업에 의해 무엇을 의미합니까 접촉 할 필요없이 서비스에 대한 정보를 노출? 추가 서비스 방법이어야합니까? – k0stya

+0

@ k0stya 예, 여분의 서비스 작업 – EdmundYeung99

답변

0

Dynamically adding methods to a WCF service에서이 기사에서 찾고 있던 것을 각 서비스 계약에 추가하지 않아도됩니다.

그러나 나는 또한 WS-검색을 사용하면 내가 원하는 것을 달성하는 더 나은 방법이라고 생각 : 서비스 계약

1

서비스를 사용하면 얻을 수있는 장점 중 하나는 잘 정의되고 상당히 정적 인 작업 집합을 소비자에게 노출시키는 것입니다.

런타임에 서비스 작업을 동적으로 추가 할 수 있다면 소비자에게 도움이 될지 모르겠습니다.

서비스 계약을 고객 단위로 변경해야하는 경우 서비스 구성이 고객의 요구에 맞지 않을 수 있음을 나타낼 수 있습니다.

죄송합니다. 귀하의 질문에 직접 답변하지 않으므로 제안 된 척도로 재 작업하는 것이 현재 개발 범위 밖에있을 수 있음을 양해 바랍니다.

+0

어쩌면 내 질문이 잘못되었습니다. 잘못된 길로 가고 있습니다. IMetadataExchange는 끝점에서 서비스에 대한 정보를 노출하는 동작입니다. 비슷한 작업을 수행하려고합니다. * 편집 * 죄송합니다. 의미는 servicemetadatabehavior입니다. – EdmundYeung99

+0

죄송합니다. 엔드 포인트 조작을 추가하려는 것처럼 들리지만 표준 계약 방식은 서비스 계약을 수정하는 것입니다. –

관련 문제