WCF 웹 서비스, 실제로 여러 웹 서비스가 있습니다. 모두 net.tcp를 사용하고 WAS를 통해 IIS에서 호스팅됩니다. 여러 클라이언트가 이러한 서비스를 호출하고 있지만 모두 알려져 있지만 제어 할 수 없습니다 (즉, 코드를 변경할 수 없기 때문에 서비스를 변경할 수 없습니다). 이 고객 중 일부는 서비스에 좋지 않아 많은 오류가 발생하며 문제가있는 것이 무엇인지 찾아야합니다. 인증을 사용하지 않기 때문에 전달 된 자격 증명을 볼 수 없습니다. IP/포트는 모두 같은 위치에서 오는 것처럼 사용할 수 없습니다. 이제는 클라이언트를 식별하는 원격 시스템의 호출 어셈블리 나 무언가를보고 이러한 클라이언트를 구별하는 방법을 찾아야합니다. 그러한 정보를 아는 사람은 누구입니까? IIS 로그, 이벤트 뷰어, 추적 파일 및 서비스에 액세스 할 수 있습니다 (정상적인 흐름을 방해하지 않는 코드에 무엇이든 넣을 수 있음).WCF (WAS) 웹 서비스에 요청하는 클라이언트에 대한 정보 로깅
답변
문제는 로깅 메커니즘과 관련이없는 것으로 보입니다. 그것은 고객들을 구별하는 방법을 찾는 것입니다.
클라이언트의 코드를 제어 할 수 없다면 최소한 엔드 포인트에 사용하는 URL을 변경할 수 있습니까? 그렇다면 여러 엔드 포인트 주소에서 서비스를 노출 한 다음 각 클라이언트가 고유 한 주소를 사용하게하는 것이 좋습니다. 그러면 주소가 클라이언트의 프록시로 나타납니다.
사용자 정의 동작을 작성하여 서비스받은 메시지를 검사 할 수 있습니다. 샘플은 여기에서 찾을 수 있습니다 다음 WCF 밖으로 Writing a WCF Message Inspector 및 Simple WCF Service Behavior: Inspect Messages Through Debug Output
클라이언트를 구별하는 메시지 개체에는 아무 것도없는 것 같습니다. – dphreak
확인 로깅 내장 및 추적 메커니즘 :
많음 더 많이 "를 검색하면 WCF, 추적, 로깅 ". WCF에 내장 된 지원은 매우 광범위합니다. 메시지를 쉽게 기록하고 출처를 확인하고 분석 할 수 있으며 필요에 따라 메시지를 켜거나 끌 수 있습니다.
메시지가 정확히 어디에서 왔는지 보여줍니다. "verbose, activitytracing"추적을 시도했지만 클라이언트에 대한 정보는 공개하지 않고 메서드 만 호출하고 응답 등을 표시합니다. – dphreak
- 1. 클라이언트에 대한 로깅 시간 (TimeZone)
- 2. 로깅 서비스에 WCF 사용 고려 ... 조언하십시오
- 3. Wcf 웹 서비스에 대한 객체 매개 변수
- 4. 웹 서비스에 요청하는 동안 iOS로드 진행률 막대
- 5. 웹 서비스에 버전 정보 표시
- 6. WCF 성 Windsor 및 WAS
- 7. WCF 메시지 로깅
- 8. 서비스 경계에서 WCF 오류 로깅
- 9. WCF 서비스에 대한 HTTP POST
- 10. WCF 서비스에 대한 동적 수정
- 11. WCF 서비스에 대한 HTTP POST
- 12. .net 웹 서비스에 대한 안내
- 13. RESTful WCF 4 서비스에서 모바일 클라이언트에 대한 사용자 인증
- 14. 는 로깅 WAS - 자바 백분율 로깅 및 Log4j를
- 15. WebHttpBinding을 사용하는 WCF 서비스에 대한 'app.config'정의
- 16. WCF 서비스에 대한 참조를 추가하면 오류가 발생합니다.
- 17. WAS 또는 IIS7의 호스트 WCF?
- 18. WCF 오류 로깅
- 19. Windows 서비스에 대한 런타임 디버깅 정보?
- 20. WCF 요청이 잘못된 클라이언트에 전달됨
- 21. Silverlight 클라이언트에서 WCF 웹 서비스에 대한 인증 + Authroizing
- 22. ASP.Net MVC에서 WCF/웹 서비스에 대한 호출 인증
- 23. WCF 웹 서비스에 연결하면 503 오류가 발생합니다.
- 24. 로깅 응용 프로그램 블록을 사용하여 WCF 로깅
- 25. 웹 서비스/WCF 초보자 : Java 기반 SOAP 웹 서비스에 대한 WCF 프록시 클라이언트/개체 만들기
- 26. 요청하는 동안 소비 서비스에 데이터 컨텍스트를 부여 하시겠습니까?
- 27. 웹 서비스에 대한 공유 인증
- 28. 웹 서비스에 대한 도움이 필요합니다.
- 29. HTTP가없는 웹 서비스에 대한 조언
- 30. 웹 서비스에 대한 비동기 요청
당신은 절대적으로 옳습니다. 클라이언트에서 실제로 제어 할 수있는 유일한 것은 web.config/app.config이며 URL을 사용하여 실제로 작업을 수행 할 수 있습니다. 나는 서비스의 주소를 변경하지 않지만 서버에 여전히 전달되는 URL 자체에 어떤 식 으로든 삽입 할 수 있는지 궁금합니다. – dphreak
당신의 생각에 기반하여 해결책을 생각해 냈습니다. 서비스 URL 다음에? client = something을 web/app.config에 추가합니다. 이는 서비스에 절대적으로 아무런 의미가 없지만 서비스 추적에 포함됩니다. 간단하고 효과적이며 실제 코드를 변경할 필요가 없습니다. – dphreak