2011-04-18 4 views
3

WCF 라우팅 목록에 로깅 또는 동작을 추가하여 라우팅에서 백업 목록의 끝점을 사용하게되면 로그 할 수 있습니까?WCF 라우팅 백필리스트 - 사용시 로깅

 <filterTables> 
     <filterTable name="RoutingTable"> 
      <add filterName="Filter1" endpointName="EP1" priority="0" backupList="FailOver"/> 
     </filterTable> 
     </filterTables> 
     <backupLists> 
     <backupList name="FailOver"> 
      <add endpointName="EP2" /> 
     </backupList> 
     </backupLists> 

결국 어떤 종점이 최종적으로 라우팅 서비스에서 사용되었는지 기록 할 수 있습니까?

+0

확장 성의 포인트가 확실하지 않습니다. 하지만 AppFabric을 사용하여 클라이언트/서비스를 모니터링 할 수 있습니다. 또한 결과를 기록하는 사용자 지정 메시지 필터를 구현할 수 있습니다. – Cybermaxs

답변

0

는 메시지를 기록 생성자에 IClientMessageInspector에게 메시지 관리자를 연결 엔드 포인트에서

패스를

을 서비스 동작을 만들어보십시오 (또는 엔드 포인트의 행동과 모든 엔드 포인트의 동작을 구성) 및 BeforeSendRequest 메서드의 끝점

public class MyClientMessageInspector : IClientMessageInspector 
{ 
    private ServiceEndpoint _endpoint; 

    public MyClientMessageInspector(ServiceEndpoint endpoint) 
    { 
     _endpoint = endpoint; 
    } 

    public object BeforeSendRequest(ref Message request, IClientChannel channel) 
    { 
     Log(request, _endpoint); 
     return null; 
    } 

    public void AfterReceiveReply(ref Message reply, object correlationState) 
    { 
     //no-op 
    } 
} 

그런 다음 동작에 특성 검사기를 적용하려면 라우터에 연결