2013-07-01 1 views
2

일반적인 OData 쿼리는 URL입니다.클라이언트 측에서 wcf 데이터 서비스 (OData) 요청 URL을 기록하십시오.

저는 WCF 데이터 서비스 (OData)를 사용하는 WPF App을 가지고 있으며,이를 해결하기 위해 서버로 보내지는 모든 URL의 로깅을 활성화하고 싶습니다. (성능 문제를 추적하고 쿼리를 중복시키기 위해)

WCF Data Services의 클라이언트 측 호출에 플러그 인하여 서버로 보내기 전에이 URL을 가져 오는 방법이 있습니까? (그리고 그것은 다시 온다 이상적 때 (개별 쿼리의 성능 프로파일) 당신은 예를 들어 DataServiceContext의 이벤트 중 하나를 듣고 요청 URL에게 이벤트가 발생 될 때마다 로그온 할 수

답변

3

에 대한 :.

var context = new DataServiceContext(new Uri("http://services.odata.org/v3/OData/OData.svc")); 
context.BuildingRequest += (sender, eventArgs) => Console.Out.WriteLine(eventArgs.RequestUri); 
.

또는 SendingRequest2에서 수신하는 것은 잘 작동 :

context.SendingRequest2 += (sender, eventArgs) => Console.Out.WriteLine(eventArgs.RequestMessage.Url); 

을 잘되어야 어느 경우에, 듣기, URL을 로깅을 위해 어떤 시점에서, 당신은 또한 요청이되기 전에 나가는 URL을 수정합니다. 보낸 사람 : BuildingRequest.

+0

SendingRequest가했습니다. 감사! – Vaccano

관련 문제