2012-02-16 1 views
1

우리 회사에서는 클라이언트/서버 응용 프로그램의 클라이언트 부분에 clickonce 배포를 사용합니다. Clickonce 패키지는 FrontPage 확장이 설치된 IIS 서버에 배포됩니다. 우리는 Visual Studio 2010에서 IIS로 직접 컴파일, 서명 및 게시합니다. 우리의 Clickonce 패키지는 각 응용 프로그램을 시작할 때 최신 버전 을 확인하도록 설정되었습니다..ClickOnce 발사기가 응용 프로그램 시작시 최신 버전을 선택하지 않음

응용 프로그램에 @100 명의 사용자가 있습니다 @ 원격 컴퓨터. 최근에 우리가 최신 릴리스를 게시 할 때 클라이언트 중 일부 (약 10-15 %)가 이전 릴리스를 사용하여 끝납니다. 클라이언트 중 하나에 원격으로 연결하고 응용 프로그램을 시작하면 clickonce 실행 프로그램이 최신 버전을 확인한 다음 업데이트하지 않고 응용 프로그램을 시작한다는 것을 알 수 있습니다. 그런 다음 응용 프로그램을 제거하고 최신 버전을 얻으려면 clickonce에서 생성 된 웹 페이지를 통해 다시 설치해야합니다.

왜 이런 일이 벌어지고 있으며 어떻게 방지 할 수 있습니까? 로깅을 활성화하여 응용 프로그램 시작시 실행 프로그램이 최신 버전을 검사하지 않는 이유를 확인하는 방법이 있습니까?

답변

1

Fiddler을 실행하고 작동하지 않는 컴퓨터 중 하나에서 앱을 실행하십시오. 올바른 위치에서 업데이트를 확인하고 업데이트 호출이 성공하는지 확인하십시오.

+0

가능하다면 문제는 그것이 클라이언트에게 너무 관입 적이라는 것입니다 (클라이언트의 보안 정책 때문에 원격 연결조차도 큰 고통입니다). 이상하게도 모든 자체 테스트 클라이언트가 정상적으로 작동합니다. 이것이 나에게 아이디어를 주었지만 실패한 순간에 클라이언트의 IP를 설정하면 IIS 로그를보고 더 많은 행운을 볼 수 있습니다. –

+0

그래, IIS 로그는 다음으로 좋은 것입니다. 행운을 빕니다! – codeConcussion

0

필요에 따라 팀에서 일부 배포시 사용하려는 두 가지 옵션이 있습니다. 이들은 각자주의해야 할 것과 정확하게 당신의 필요에 부합하지 않을 수도 있지만 문제를 해결해야합니다.

  1. 게시 설정에서 "응용 프로그램은 온라인에서만 사용할 수 있습니다"로 설정하십시오. (기본값은 일반 프로그램처럼 창에 설치되는 오프라인 모드입니다.)이 모드는 publish.html에서 시작할 때마다 응용 프로그램을 다시 다운로드하고 Windows에 설치하지 않습니다. 매번 html 또는 setup.exe를 실행해야합니다. 우리는 사용자가 그들을 찾을 수 있도록 온라인 모드에서 우리가 가지고있는 응용 프로그램을 가리키는 버튼/링크를 가지고있는 "메뉴"응용 프로그램을 만들어이 문제를 해결했습니다.

  2. 오프라인 모드를 계속 사용하려는 경우 최소 필수 버전 = 현재 버전을 설정하십시오. 이 때마다 ClickOnce에서 최신 버전을 구해야합니다.이 기능은 저에게 효과적 인 것으로 보이지만 철저하게 테스트하지는 않았습니다.

+0

"이 모드는 시작할 때마다 응용 프로그램을 다시 다운로드합니다". 이것은 잘못된 것입니다. 오프라인과 온라인은 거의 동일합니다. 단 3 가지 차이점이 있습니다. 1. 오프라인은 항목 추가/제거를 추가합니다 2. 오프라인은 시작 메뉴 바로 가기를 추가합니다. 3. 온라인 응용 프로그램에는 250MB 캐시가 있습니다. 다시 다운로드 할 수있는 유일한 시간은 캐시가 250MB가 넘고 앱이 청소 된 경우입니다. – codeConcussion

+0

브렛 (Brett), 이미이 시나리오를 고려해 보았습니다.하지만 문제는 클라이언트 응용 프로그램이 오프라인 모드에서 데이터 입력을 가능하게하고 사용자가 인터넷에 다시 연결할 때 오프라인 데이터가 서버에 게시된다는 점입니다. 이것은 효과적으로 제안 된 솔루션 중 하나를 사용하지 못하게합니다. 왜냐하면 첫 번째 경우에는 오프라인에서 응용 프로그램을 사용할 수 없으며 두 번째 버전에서는 사용자가 오프라인 데이터를 서버에 게시 할 수 없기 때문입니다. 왜냐하면 업데이트 후에는 비 직렬화 할 수 없기 때문입니다 이전 스키마로 작성된 오프라인 데이터 (거의 모든 업데이트가 데이터 모델을 변경) –

+0

게다가 새로운 버전의 탐지가 이미 작동하지 않는다면 솔루션 # 2가 내 문제를 해결하지 못할 것이라고 거의 100 % 확신합니다. –

관련 문제