2011-07-29 4 views
4

SOA 아키텍처에서 실행됩니다. 다른 솔루션의 WinForms 앱에서 호출하는 호출로 디버깅하려고하는 서비스가 있습니다.WCF 서비스로 디버그

이 winforms 응용 프로그램에서는 app.config에서 localhost의 서비스를 올바르게 참조했으며 이제 WCF 서비스 인스턴스를 시작하여 중단 점을 설정하고 단계별로 실행할 수 있습니다.

서비스에 들어가면 프로젝트를 마우스 오른쪽 단추로 클릭하고 속성으로 이동 한 다음 '작업 시작'에서 서비스 bin/debug/디렉토리에서 .exe 파일을 선택합니다. 그런 다음 F5를 저장, 컴파일 및 히트하여 인스턴스를 시작합니다. 가

내가 무엇을

을 일을해야 enter image description here :이 오류가?

+0

이 서비스를 어떻게 호스팅하고 있습니까? IIS 또는 Windows 서비스에서 – Jeff

+0

이것은 IIS가 아니라 Windows 서비스입니다. – slandau

+0

첨부해야합니다. 디버그 -> 처리에 연결 – ppiotrowicz

답변

6

프로세스에서 서비스를 호스트 한 다음 거기에서 디버그해야합니다. 이는 콘솔 앱을 작성하여 서비스를 호스팅하거나 Windows 서비스를 작성하여 호스팅하거나 Windows Forms 앱을 작성하거나 IIS에서 호스팅하는 것처럼 간단 할 수 있습니다.

그렇게 같은 콘솔 응용 프로그램에서 호스팅 할 수 있습니다 :

static void Main(string[] args) 
{ 
    using (ServiceHost host = new ServiceHost(typeof(YourNamespace.YourServiceInterface))) 
    { 
    host.AddServiceEndpoint(typeof(
YourNamespace.YourServiceInterface), new NetTcpBinding(), "net.tcp://localhost:9000/YourService"); 
    host.Open(); 

    Console.WriteLine("Press <Enter> to terminate the Host 
application."); 
    Console.WriteLine(); 
    Console.ReadLine(); 
    } 
} 

this article

는 Windows 서비스에서 호스팅하는 방법을 보여줍니다. 서비스가 시작될 때 디버거를 연결할 수 있도록 내가 OnStart 방법의 첫 번째 라인으로

Debugger.Launch(); 

를 추가하는 것이 좋습니다. 이렇게하면 시작 문제를 디버그하는 데 도움이됩니다. 그렇지 않으면 Debug 메뉴에서 AttachToProcess를 선택하고 실행중인 Windows 서비스에 연결할 수 있습니다.

당신은 IIS 또는에서 실행되는 서비스 자체 호스팅되어 using System.DiagnosticsDebugger.Launch(); 방법

1

로컬로 구축하려는 서비스를 Windows 서비스로 설치 한 다음 연결해야합니다.

1

를 사용하여 추가 할 필요가? 어느 쪽이든 서비스가 실행되면 디버그 -> 프로세스 첨부로 이동하여 서비스에 연결할 수 있습니다.

IIS에서 실행중인 경우 w3wp.exe (IIS 7) 프로세스를 찾아야합니다. 이 프로세스에 연결하려면 대개 관리자로 VS를 실행해야합니다. 이전 버전의 IIS를 실행하는 경우 aspnet_XXX와 같은 프로세스가 호출됩니다.

일단 연결되면 중단 점을 넣고 필요에 따라 디버그 할 수 있습니다.

+0

자체 호스팅 됨 – slandau

0

클래스 라이브러리 프로젝트를 실행/디버깅 할 때 오류가 발생하므로 서비스 프로젝트가 그 종류가 아닌지 확인하십시오.

당신이 그것을 쉽게 할 (그리고 어떤 디자인 infraestructure 문제가 없습니다) 다음 VS에서/디버그를 실행하는 것이 프로젝트와 같은 웹 사이트에서 서비스를 호스팅하는 WCF 서비스 응용 프로그램 프로젝트를 만들 경우 https://dl-web.dropbox.com/get/Photos/web/wcfserviceapp.png?w=44e8c6ed

이를 방법은 당신의 솔루션에서 서비스를 실행하고 그 솔루션에서 winforms 애플 리케이션을 실행할 수있는 다음 메뉴 "디버그/첨부 프로세스에 갈 수 ...당신이 할 프로젝트의 어떤 종류의 더 명확한 아이디어를 가지고 정교한 만족하지 않을 경우 어떻게 솔루션 및 기타 유용한 정보입니다, 나는이 도움이 되었으면 좋겠 https://dl-web.dropbox.com/get/Photos/web/debugattachtoprocess.png?w=8c917c28

"와 서비스 URL 및 포트를 찾습니다.
관련 문제