2017-10-01 45 views
0

C#을 처음 접한다면 서비스를 만드는 것이 디버깅을 위해 Visual Studio 2017 인터페이스에서 실행할 수있는 단계가 아니라는 것을 알게되었습니다. 적어도, 나는 알고있다. 대신 원하는대로 서비스를 만들고 작동시켜야하며 서비스 설치 프로그램 명령 (InstallUtil.exe)을 사용하고 문제를 확인하기 위해 디버그를 수행 할 방법이 없습니다. 이 문제는 WCF를 사용하는 Named Pipes IPC/RPC를 통해 localhost의 서비스 EXE와 통신해야하는 클라이언트 EXE와 함께 사용해야하는 경우에 발생합니다.WCF를 사용하여 C#에서 로컬 호스트 클라이언트/서비스를 디버깅하는 방법

그래서 이것을 디버깅하려면 어떻게해야할까요? 대신에 그냥 일반 콘솔 앱을 먼저 빌드하고 WCF를 통해이 콘솔 앱과 통신하기 위해 클라이언트 GUI EXE (Win Forms 앱)를 얻은 다음 콘솔 앱의 코드를 서비스 앱에 복사하고 서비스를 설치 하시겠습니까?

답변

0
  • 솔루션 탐색기에서 솔루션 이름을 마우스 오른쪽 단추로 클릭하십시오.

  • 시작 프로젝트 설정을 클릭하십시오.

  • 솔루션 등록 정보 대화 상자에서 다중 시작 프로젝트를 선택하십시오.

  • 다중 시작 프로젝트 그리드의 서버 프로젝트에 해당하는 줄에서 동작을 클릭하고 시작을 선택하십시오.

  • 클라이언트 프로젝트에 해당하는 줄에서 동작을 클릭하고 시작을 선택하십시오.

  • 확인을 클릭하십시오.

자세한 내용은 https://msdn.microsoft.com/en-us/library/bb157685.aspx

+0

[이 튜토리얼] (https://msdn.microsoft.com/en-us/library/bb386386.aspx)을 따라했지만 DLL 대신 EXE를 선택하면 이제이 방법을 사용할 수 있습니까? Windows 서비스 제어판에서 시작, 중지, 일시 중지 및 재개 할 수 있도록로드하고 관리자 수준의 보안 컨텍스트에서 실행합니까? – Volomike

0

생성 서비스를 방문하면 디버그를위한 비주얼 스튜디오 2017 인터페이스에서 실행하고 그것을 통해 단계 수있는 일이 아니다. - C#이나 js를 디버깅 할 때 디버깅 할 수 있습니다.

서비스를 단독으로 만 만들거나 wcftestclient.exe를 사용하여 서비스 만 디버깅하고 테스트 할 수 있습니다.

그래서 이것을 디버깅하려면 어떻게해야할까요? Visual Studio 명령 프롬프트에서 wcftestclient.exe를 실행할 수 있습니다. 내 서비스 프로젝트를 마우스 오른쪽 단추로 클릭하고 서비스를 호스트했던 baseaddress를 추가하십시오. 아래에는 스냅 샷이 있습니다. enter image description here 디버깅하려는 곳의 디버거를 놓고이 클라이언트 GUI의 입력을 제공하십시오. 디버거가 충돌합니다. 콘솔 앱 또는 WCF 서비스를 테스트 할 수있는 모든 것을 만들 필요가 없습니다. enter image description here