2010-01-11 3 views
1

WCF 웹 서비스, 실제로 여러 웹 서비스가 있습니다. 모두 net.tcp를 사용하고 WAS를 통해 IIS에서 호스팅됩니다. 여러 클라이언트가 이러한 서비스를 호출하고 있지만 모두 알려져 있지만 제어 할 수 없습니다 (즉, 코드를 변경할 수 없기 때문에 서비스를 변경할 수 없습니다). 이 고객 중 일부는 서비스에 좋지 않아 많은 오류가 발생하며 문제가있는 것이 무엇인지 찾아야합니다. 인증을 사용하지 않기 때문에 전달 된 자격 증명을 볼 수 없습니다. IP/포트는 모두 같은 위치에서 오는 것처럼 사용할 수 없습니다. 이제는 클라이언트를 식별하는 원격 시스템의 호출 어셈블리 나 무언가를보고 이러한 클라이언트를 구별하는 방법을 찾아야합니다. 그러한 정보를 아는 사람은 누구입니까? IIS 로그, 이벤트 뷰어, 추적 파일 및 서비스에 액세스 할 수 있습니다 (정상적인 흐름을 방해하지 않는 코드에 무엇이든 넣을 수 있음).WCF (WAS) 웹 서비스에 요청하는 클라이언트에 대한 정보 로깅

답변

0

문제는 로깅 메커니즘과 관련이없는 것으로 보입니다. 그것은 고객들을 구별하는 방법을 찾는 것입니다.

클라이언트의 코드를 제어 할 수 없다면 최소한 엔드 포인트에 사용하는 URL을 변경할 수 있습니까? 그렇다면 여러 엔드 포인트 주소에서 서비스를 노출 한 다음 각 클라이언트가 고유 한 주소를 사용하게하는 것이 좋습니다. 그러면 주소가 클라이언트의 프록시로 나타납니다.

+0

당신은 절대적으로 옳습니다. 클라이언트에서 실제로 제어 할 수있는 유일한 것은 web.config/app.config이며 URL을 사용하여 실제로 작업을 수행 할 수 있습니다. 나는 서비스의 주소를 변경하지 않지만 서버에 여전히 전달되는 URL 자체에 어떤 식 으로든 삽입 할 수 있는지 궁금합니다. – dphreak

+0

당신의 생각에 기반하여 해결책을 생각해 냈습니다. 서비스 URL 다음에? client = something을 web/app.config에 추가합니다. 이는 서비스에 절대적으로 아무런 의미가 없지만 서비스 추적에 포함됩니다. 간단하고 효과적이며 실제 코드를 변경할 필요가 없습니다. – dphreak

2

확인 로깅 내장 및 추적 메커니즘 :

많음 더 많이 "를 검색하면 WCF, 추적, 로깅 ". WCF에 내장 된 지원은 매우 광범위합니다. 메시지를 쉽게 기록하고 출처를 확인하고 분석 할 수 있으며 필요에 따라 메시지를 켜거나 끌 수 있습니다.

+0

메시지가 정확히 어디에서 왔는지 보여줍니다. "verbose, activitytracing"추적을 시도했지만 클라이언트에 대한 정보는 공개하지 않고 메서드 만 호출하고 응답 등을 표시합니다. – dphreak

관련 문제