문제

WCF REST 서비스에 요청과 응답을 모두 기록하는 방법을 찾고 있습니다. WCF REST 스타터 키트에는 요청을 가로 채는 데 사용할 수있는 RequestInterceptor 클래스와 함께 제공되지만 응답과 동등한 것은없는 것 같습니다. 이상적으로는 응답이 전선을 통해 전송되기 직전에 응답을 가로 채고 싶습니다. 예를 들어 기본 서비스 방법이 반환 될 때. 제안이 있습니까?

도움이 되었습니까?

해결책

매개 변수가 아닌 원시 메시지를 가로 채려면 IdispatchMessageInspector Dani가 제안한 iparameterinspector 확장 지점 대신.

다른 팁

WCF에는 기술이 있습니다. 속성, ioperationbehavior에서 파생되는 InstrumentEperationAttribute를 만듭니다.

당신의 내부 구현 :

public void ApplyDispatchBehavior(

   OperationDescription operationDescription,

   DispatchOperation dispatchOperation

   )
{

  dispatchOperation.ParameterInspectors.Add(

     new ServerPI()

     );

}

그리고 serverpi () 클래스는 마법입니다. 당신은 핵심 및 애프터 방법에서 필요한 모든 것을 수행합니다.

  class ServerPI : IParameterInspector
  {

    public void AfterCall(string operationName, object[] outputs, object returnValue, object correlationState)
    {
      Guid result = (Guid)correlationState;
      // ...
    }

    public object BeforeCall(string operationName, object[] inputs)
    {
      string parameter1 = inputs[0] as string;
      return Guid.NewGuid();
    }

  }
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top