2009-10-04 5 views
0

VB.NET, 3.5 Framework를 사용하고 있습니다.WCF 서비스가 현재 값을 반환하지 않습니까?

콘솔 응용 프로그램으로 실행되는 WCF 서비스를 만들었습니다. 내 워크 플로우 엔진을 청취하는 이벤트를하고 있습니다.

내가하려고하는 두 번째 응용 프로그램은 서비스를 모니터링하고 엔진 작업자의 현재 상태를 되돌릴 수있는 WinForm입니다.

서비스에 잘 연결할 수 있으며이를 통해 내 서비스가 설정 될 때 값이 설정된다는 것을 확인했습니다 ... 그러나 모니터가 서비스를 호출 할 때 값을 반환하는 것처럼 값을 반환합니다. 도망 간다 고요? (기본값이므로 현재 값이 아님)

어떤 아이디어가 잘못 되었나요? 내 WFE는 멀티 스레드이므로 서비스 인터페이스를 싱글 톤 패턴으로 만들 필요가 있는지 궁금해했다.하지만 그렇게하기 전에 쉽게 이해할 수없는 뭔가를 놓치고 있는지 확신 할 수 없다.

서비스 호출로 모니터를 탐색하면 서비스 코드로 점프되지만 변수와 개체가 현재 상태를 표시하지 않습니다.

답변

2

두 번째 앱은 "서비스를 모니터링하고 엔진 작업자의 현재 상태를 돌려 보내야합니다."라고 언급했습니다.

서비스 상태는 어떻게 유지됩니까? 일반적으로 WCF 서비스는 호출 단위로 활성화되며 활성화 된 경우에만 사용할 수 있으며 요청이 처리되면 처리됩니다.

상태는 무엇이며 통화간에 어떻게 유지됩니까? 싱글 톤 서비스 인스턴스를 사용하고 있습니까? 또는 요청시 데이터베이스와 같은 영구 저장소에서 상태를 가져 오시겠습니까?

나는 당신이 여기에서하려고하는 것에 대해 명확하지 않습니다.

마크

+0

나는 싱글 톤 서비스 인스턴스를 사용하지 않고있다. 나는 그게 문제라고 추측하고있다. 어떻게 강제 할 수 있습니까? 바라건대 이것은 더 명확합니다. - 이벤트 처리로 실행되는 콘솔 앱. 이벤트는 설정된 기준 (하트 비트)으로 실행됩니다. 이것은 내가 하트 비트를 추적하는 클래스에 WCF 서비스 인터페이스를 실행하고있는 곳입니다. - 별도의 윈폼 응용 프로그램이 현재 작업자 (이벤트를 발생시키는 사람)의 목록을 가져올 수 있도록 WCF 서비스와 통신하려고합니다.) 이전 질문에서이 모델을 수행하는 가장 좋은 방법을 물었고 WCF가 권장되는 옵션이었습니다. 다른 것을 사용해야합니까? – RiddlerDev

+0

아니요,하지만 실제로는 불가능한 일을하려고합니다. WCF에서 서비스 클래스 인스턴스는 요청을 처리하는 동안 짧은 시간 동안 만 "활성"상태가됩니다. 대부분의 경우, 그들은 존재조차하지 않기 때문에, 당신이 여기서 모니터하고 싶은 것을 정말로 모르겠습니다. 또한 - 왜 모니터하고 있습니까? WCF에는 성능 카운터가 수천 가지 있습니다.이 카운터는 여러분이 알고 싶어하는 모든 것을 모니터링 할 수 있습니다! 그것들을 사용하십시오 - 훨씬 쉽게! –

+0

우리는이 프로그램을 모든 프로그램의 상태를 원격으로 모니터링 할 수있는 관리 프로그램에 추가합니다. 따라서 서비스의 현재 상태를 호출자에게 다시 전달할 방법이 없습니다. – RiddlerDev

관련 문제