2011-02-03 5 views
4

우리는 클라이언트 PC에 설치된 .NET Windows 서비스을 구축하여 해당 PC에서 데이터를 모니터링 및 업로드 (웹 서비스를 통해)합니다. 은 모든 클라이언트 PC의 Windows 서비스를 중앙에서으로 업데이트하는 방법을 찾고 있습니다. 각 저장소에 원격 설치하지 않아도됩니다. 여기 .net windows 서비스를 중앙 위치에서 업데이트하는 방법

이 (내가 이것을 생각하지 않는다 하지만 정말 중요한) 몇 가지 세부 사항은 다음과 같습니다

  • Windows 서비스 : .NET 버전 2 (인해 클라이언트 PC 제약) - VB.NET
  • 웹 서비스 : .NET 버전 4 - VB.NET
  • 클라이언트 PC의 OS : Win7에, POSReady에에 Win2000을, WEPOS

일부 추가 정보

  • 우리는 아주 잘 작동하는 설정 파일을 가지고 있지만, 우리는 그것을 실행하는 각 점포에 원격 필요합니다. 그리고 100 점의 상점이 있습니다!
  • 우리는 FTP 사이트에 설치 파일을 넣는 것을 고려했지만 Windows Embedded OS가 FTP를 지원하지 않았기 때문에 웹 서비스를 통해 파일을 보낼 수 있다고 들었습니다.
  • 각 Windows 서비스가 웹 서비스를 호출 할 때마다 메서드를 호출하여 웹 서비스를 업데이트하라는 지시를 보내는 데 사용할 수있는 XML을 반환합니다.

이것은 개발자가 이미 여러 번 해결해야 할 표준 문제인 것처럼 보입니다. 누군가가 조언을하거나 사용하는 프로세스를 제안 할 수 있다면 실제로 도움이 될 것입니다. 내가 설치 파일을 얻을 수있는 방법을 가지고있는 것처럼

  • 가 보이는이 새로운 업데이트 기능을 추가하는 Windows 서비스 및 웹 서비스를 모두 변경할 수 있습니다

    • UPDATE는 (웹 서비스에서 다운로드 방법), 그러나 그것을 실행하는 것은 어떨까요? 설치 프로그램을 실행 한 다음 Windows 서비스가 종료되었는지 확인하려면 어떻게합니까? 설치 프로그램이 Windows 서비스를 수행합니까?

  • 답변

    3

    웹 서비스가있는 경우 업데이트 방법을 추가 할 수 있습니다.

    업데이트 설치 프로그램이나 응용 프로그램을 로컬로 실행하십시오.
    그런 다음 웹 서비스에서 Stream 또는 byte [] 배열을 반환하는 메서드를 추가합니다.
    웹 서비스의 메소드에서 바이너리 설치 프로그램 파일을 byte [] 배열이나 스트림으로 읽어서 클라이언트에게 보냅니다.

    그런 다음 클라이언트가 해당 스트림을 파일에 저장하게하고 클라이언트 시스템에 설치 프로그램을 갖게하십시오.
    남은 작업은 해당 프로세스를 실행하고 서비스를 업데이트하는 것입니다.

    +0

    그가 이미 앱에 그런 것을 내장했다면 좋은 답변입니다. 제 내기는하지 않지만, 패치 설치 관리자 또는 패치를 가져올 업데이터 프로그램을 수동으로 누르는 두통을 겪은 후에야 할 것입니다. – KeithS

    +0

    지금 앱에서 빌드하고, 수동으로 모두 업데이트 (모든 설치 또는 무언가를 전송) 한 후 다음 번에 걱정할 필요가 없습니다. –

    +0

    답변 해 주셔서 감사합니다. 고객이 웹 서비스에서 파일을 저장할 수 있도록 앱을 변경할 수 있습니다. 그러나 다운로드 후 어떻게됩니까? 업그레이드를 위해 닫아야 할 프로그램에서 설치 프로그램을 어떻게 실행합니까? –

    1

    패치가 MSI 패키지 인 경우 Active Directory를 사용하여 AD 서버의 제어하에 동일한 네트워크에있는 컴퓨터로 업데이트를 푸시 할 수 있습니다. 그러면 업데이트가 즉시 또는 다음 시작시 실행됩니다.

    패키지를 직접 푸시 할 수 있지만 자동으로 업데이트를 수행 할 수있는 충분한 지능과 특권이있는 프로그램에 의해 제어되는 반대쪽에서 청취하는 전송 메커니즘이 있어야합니다.

    AD를 제외하면 일반적인 네트워크 파일 공유를 사용하여 업데이트를 클라이언트로 푸시 다운하는 것이 가장 좋습니다. 클라이언트 컴퓨터는 실행 중이어야하지만 시작 화면에있을 수 있습니다. 그런 다음 Documents & Users/All Users/Start Menu/Startup 폴더에 MSI의 "미리 준비된 설치"를 수행합니다 (기본적으로 기본 설치 매개 변수로 자동 설치를 수행하도록 MSI에 지시합니다). 다음 사용자 로그인시 배치 파일이 실행되어 설치가 수행됩니다. MSI는 나중에 배치 파일을 정리해야합니다. 클라이언트 컴퓨터의 레지스트리에 원격으로 액세스 할 수 있다면 (나는 그다지 의심 스럽습니다), 배치 파일을 임시 디렉토리에 넣고 RunOnce 레지스트리 폴더에 배치 할 수 있습니다.

    이 rigamarole을 한번 살펴보면 알려진 웹 서비스를 통해 자신의 업데이트를 확인하고 다운로드하거나 ClickOnce 배포를 사용하도록 설정할 수 있습니다 (설치 디렉토리가 지저분하지만 배포를 업데이트합니다. 훨씬 간단 해짐).

    +0

    답장을 보내 주셔서 감사합니다. Re "... 아마 알려진 웹 서비스를 통해 자신의 업데이트를 확인하고 다운로드하기 위해 이와 같은 응용 프로그램을 구성하도록 가르쳐 줄 것이며, 응용 프로그램을 변경할 수 있으므로 알려진 웹 서비스를 사용하여 내 응용 프로그램을 업데이트하는 방법에 대해 자세히 알려주십시오. –

    +0

    기본적으로 패턴은 응용 프로그램이 열릴 때 최신 릴리스 버전의 소프트웨어를 알려주는 간단한 웹 서비스를 호출하고 자체 웹 서비스와 비교하는 패턴입니다. 다른 경우 업데이트 패키지를 다운로드하고 실행하는 두 번째 웹 서비스에 전화하십시오. – KeithS

    관련 문제