2013-10-31 5 views
0

Visual Studio 2010을 사용하고 있습니다. 아주 간단한 asp.net 웹 페이지가 있는데, XML 파일을 찾아보고 업로드하며 현재 2 개의 텍스트 상자가 있습니다. 왼쪽 상자에 원본 xml 내용을 표시 한 다음 xml을 입력으로 사용하여 WCF 서비스를 호출하고 오른쪽 상자에 반환 된 결과를 표시합니다.WCF 서비스를 호출하는 프로그램을 디버그하는 방법,

지금은 "메시지 서비스 대기열을 사용할 수 없습니다."라는 오류가 계속 발생합니다. Google 검색에서 메시지 큐 서비스에 대한 시스템 계정을 설정했습니다.

이제 서비스를 디버그해야합니다. 주변을 검색 한 후에 프로세스에 대한 연결이 좋은 접근 방법 일 수 있다고 생각했습니다. 그러나 동료의 컴퓨터에서 서비스를 다시 시작하는 것은 너무 빠르므로 디버그 -> Attach to Process -> select_exe를 클릭 할 수 없으며 솔직히 OnStart 함수에서 전혀 멈추지 않는다는 것이 이상합니다. ..

WCF는 Windows 서비스로 호스팅됩니다.

누구나 내 경험과 지식에 대한 아이디어 나 힌트를 줄 수 있습니까? 또는 내 상황에서 좋을 것이라고 생각하는 다른 접근 방법.

모든 아이디어는 높이 평가됩니다. 대단히 감사합니다. =)

+0

제어 서비스 인 경우 Debugger.Launch()를 붙이기 시작 부분에 넣으십시오. – devshorts

+0

@Abhinav OnStart 함수에 중단 점을 넣었으므로 서비스를 다시 시작하려고 시도했습니다. 서비스 중지가 시작되면 온 스타트 기능으로 중지되지 않습니다. – user2751691

답변

1

Environment.UserInteractive Property을 사용하여 디버거에서 실행 중이거나 단순히 디버그 모드 (릴리스가 아닌) 인 것을 감지하고 서비스가 아닌 콘솔 응용 프로그램으로 프로그램을 시작하도록 서비스 코드를 수정하십시오 . 예를 들어

:

static void Main() 
    { 
#ifdef DEBUG 
     Application.Run(); 
#else 
     ServiceBase service = new SampleService(); 
     ServiceBase.Run(service); 
#endif 
    } 

이것은 당신이 브레이크 포인트를 설정하고 다른의 클라이언트 코드를 실행하는 동안 비주얼 스튜디오의 한 인스턴스에서 코드를 한 단계 씩 할 수 있습니다.

+0

그게 제가 이야기하고 있던 변화입니다. 이렇게하면 SCM을 없앨 수 있습니다. – Abhinav

+0

@ ChrisF ♦ 감사합니다. 또한, 테스트를 제외하고 질문 : 스텁, moq 및 두더지가 내 문제와 관련이 있습니까, 내 현재 프로젝트를 위해 시간을 투자해야합니까? – user2751691

+0

@ user2751691 - 아니요, 단위 테스트 용입니다. – ChrisF

0

이 WCF 서비스는 어떻게 호스팅됩니까? 웹 서비스, 윈도우 서비스, 콘솔 응용 프로그램 등? 어쨌든 당신은 VS에서 해당 응용 프로그램을 디버깅 할 수 있고 응용 프로그램이 그것을 쳤을 수 있습니다. Windows 서비스의 경우 디버깅을 위해 코드를 약간 변경해야합니다.

+0

Windows 서비스로 호스팅되었습니다. – user2751691

+0

감사합니다. 또한, 테스트를 제외하고 질문 : 스텁, moq 및 두더지가 내 문제와 관련이 있습니까, 내 현재 프로젝트를 위해 시간을 투자해야합니까? – user2751691

관련 문제