2012-09-22 6 views
1

내 Windows 응용 프로그램에서 WCF Restful 서비스를 호스팅하고 있습니다.WCF 서비스를 디버깅하는 방법은 무엇입니까?

서비스에 대한 클라이언트는 모바일 응용 프로그램입니다.

클라이언트가 서비스를 호출하고 메시지가 응용 프로그램에 전달되고 작업이 실행됩니다.

내가 직면 한 문제는 대부분의 경우 응용 프로그램이 정상적으로 작동한다는 것입니다. 하지만 일부 컴퓨터 및 네트워크 설정에서는 작동하지 않습니다.

더 좋은 아이디어를 얻으려면 : 앱이 라우터 A에 연결된 컴퓨터 1에서 작동하지 않습니다. 이제는 라우터 B에 연결하고 동일한 앱이 동일한 컴퓨터에서 작동하기 시작합니다.

마찬가지로 응용 프로그램이 라우터 A에 연결된 machine1에서 작동하지 않습니다. 이제 컴퓨터를 변경하고 동일한 라우터에 연결된 상태로 유지하면 앱이 정상적으로 작동합니다.

문제를 파악할 수 없습니다. 이 문제를 디버깅하는 방법에 대한 아이디어가 있습니까?

도움을 주시면 감사하겠습니다.

답변

5

WCF 서비스에서 추적 및 메시지 로깅을 설정합니다. 이것은 도구 메뉴에서 사용할 수있는 Visual Studio의 WCF 서비스 구성 도구를 통해 가장 쉽게 서비스의 web.config/app.config 파일에서 수행 할 수 있습니다 (참고 :이 도구를 한 번 열면 그것을 닫은 다음 app/web .config 파일을 마우스 오른쪽 단추로 클릭하고 Visual Studio 세션 기간 동안 상황에 맞는 메뉴에서 'WCF 구성 편집'을 선택하고 파일을 도구에서 자동으로 엽니 다. WCF 구성 편집기에서 진단 섹션으로 이동하면 추적 및 메시지 로깅을 설정할 수 있습니다. 로그 파일을 만들거나 경로를 원하는 위치로 조정하십시오. autoflush를 켜는 것이 좋습니다. 따라서 정보가 로그에 더 자주 기록됩니다. 추적 세션 후에 서비스를 순환시켜 로그 파일에 모든 관련 정보가 들어 있는지 확인하십시오.

이제 작동하지 않는 구성에서 서비스를 누르십시오. 프로그램 파일 아래의 SDK 폴더에서 찾을 수있는 svctraceviewer.exe를 사용하여 로그를 검사하십시오. 서버에서 기존 로그 파일을 지우지 않고 유효 세션에서 로그 파일 세트를 검사하여 차이점을 비교하려고 시도하는 경우 로그에서 사용자가 점프 아웃하는지 확인하십시오. 당신의 목적을 달성하기 위해 http://msdn.microsoft.com/en-us/library/ms730342.aspx

+0

다른 가능성은 서버 컴퓨터에 Visual Studio를 설치하거나 Visual Studio 원격 디버깅 서비스를 설치하고 서버의 서비스 호스트에 연결을 시도하는 것입니다. 코드를 단계적으로 실행하려면 서버의 바이너리가 디버그 컴파일되고 pdb 파일이 있는지 확인해야합니다. 원격 디버깅에 대한 자세한 내용은 http://msdn.microsoft.com/en-us/library/y7f5zaaa(v=vs.100).aspx를 참조하십시오. – codechurn

+0

정말 문제를 해결하는 것이 분명해졌습니다. – Sandeep

0

다른 환경에서 교환되는 메시지를 검사하고 비교하려면 Fiddler과 같은 도구를 사용해보십시오.

+0

감사합니다. Joe. 나는 같은 것을 시도했다. 그러나 교환되는 메시지는 기계에서 동일했다. – Sandeep

0

, 당신은 당신의 WCF 서비스에 대한 추적을 활성화 할 수 있습니다 : 여기

도움이 될 수 있습니다 MSDN에 대한 WCF 추적에 대한 링크입니다. 이미이 주제에 대한 stackoverflow 링크가 있습니다.

How to turn on WCF tracing?

관련 문제