2013-04-23 2 views
0

여러 프로젝트로 솔루션을 만들었습니다. WPF 응용 프로그램 하나의 프로젝트가 있습니다. 이 응용 프로그램은 서비스 로직 응용 프로그램과 통신합니다. 해당 응용 프로그램은 모든 트래픽을 특정 개체에 대한 다른 관리자로 리디렉션합니다. 이러한 관리자는 몇 가지 클래스를 통해 데이터베이스와 통신합니다. 솔루션의 다른 프로젝트는 예를 들어 내가 연결된 일부 하드웨어와 통신 할 수있는 프로젝트입니다.Windows 서비스에서 내 응용 프로그램 변환

이 솔루션 (WPF 응용 프로그램 제외)을 Windows 서비스로 변환하려면 어떻게해야합니까? 하드웨어 통신 및 데이터베이스 저장과 같은 모든 작업이 여전히 실행되도록하고 WPF UI를 시작하여 언제든지 일부 설정을 구성 할 수 있습니다.

저는 설치 프로그램 패키징이 어떻게 작동하는지 실제로 이해하지 못합니다. 나는 중앙 로직 클래스의 인스턴스를 생성하는 서비스를 만들었다. 이 인스턴스는 한 번만 만들어야하며이 클래스를 인스턴스화하면 다른 관리자 클래스가 시작되고 데이터베이스 처리기 클래스와 외부 하드웨어의 이벤트를 처리하는 클래스가 만들어집니다. 간단히 말해, 애플리케이션은 중앙 로직 클래스를 인스턴스화 할 때 작동해야합니다. 그래서 서비스를 시작할 때 모든 것이 실제로 이루어져야하며, 그 클래스를 인스턴스화합니다. WPF UI 응용 프로그램은 구성에만 사용되며 꼭 필요한 것은 아닙니다.

이러한 서비스를 만들고 설치 프로그램을 만들려면 어떻게해야합니까? 다음 코드만으로는 충분하지 않은 것 같습니다.

protected override void OnStart(string[] args) 
{ 
    log.Debug("Starting service..."); 
    serviceLogic = new CentralLogic(); 
    log.Debug("Successfully started service"); 
} 

설치 프로그램을 잘못 만들고 있습니다. 누군가 올바른 방향으로 나를 인도 할 수 있습니까?

편집 : 나는 그것을 조사해 보았고 UI가 나중에 서비스와 통신 할 수 있도록 WCF를 사용하고있는 것으로 보입니다. 먼저 서비스를 내 Windows PC에 설치하고 제대로 작동하게하고 싶습니다. Visual Studio에서 솔루션을 실행하면 모든 작업이 정상적으로 수행됩니다. WPF 응용 프로그램은 CentralLogic 클래스의 인스턴스를 시작하고 만드는 응용 프로그램입니다. 그 후 UI로 아무 것도하지 않고 하드웨어로만 플레이하면 모든 것이 작동합니다. 따라서 CentralLogic 클래스의 인스턴스를 만드는 것은이 클래스가 다른 클래스를 관리하기 때문에 전체 솔루션을 실행하는 데 충분해야합니다. 설치 프로그램, 서비스 및 건물 만 만들면 나에게 문제가 발생합니다. 나는 여기서 어떻게해야 할 지 전혀 모른다.

+0

이 연습 [연습 : 구성 요소 디자이너에서 Windows 서비스 응용 프로그램 만들기] (http://msdn.microsoft.com/en-us/library/zt39148a.aspx)를 읽으십시오. 솔루션은 아무 것도하지 않으며, 출력 유형을 결정하는 빌드 또는 게시를 선택한 프로젝트입니다. Windows 서비스 프로젝트를 추가하고 게시하고 설치 한 다음 WPF 응용 프로그램을 WPF 응용 프로그램에 연결하기 만하면됩니다. – CodeCaster

답변

1

이 유용한 연습 http://msdn.microsoft.com/en-us/library/zt39148a(v=vs.100).aspx

에게 당신은 서비스로 UI를 구축, 또는 예를 들어, 서비스에 이야기 다른 응용 프로그램을 가질 수 중 WCF를 사용합니다.

이것은 또한 Making an existing exe with gui into windows service을 도와 주어야합니다. 그러나 이미 프로젝트가 도중에 부러져있는 것처럼 보입니다.

+0

동의합니다. 아마도 서비스에서 UI를 만드는 것이 더 쉬울 것입니다. 지금 당장 귀하의 링크를 살펴 보겠습니다. – Joetjah

+0

대상 OS를 확인해야합니다. 이 서비스는 더 이상 일반적이지 않은 데스크톱과 상호 작용해야합니다. 개인적으로는 서비스를 제공하는 앱을 선택할 것입니다.하지만 그 변화는 사용자에게 얼마나 큰 변화가 될 것인가에 달려 있습니다. – sambomartin

관련 문제