WCF REST 서비스의 요청/응답을 기록합니다
문제
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();
}
}
제휴하지 않습니다 StackOverflow