2012-11-21 21 views
18

Mamy zainstalowaną na serwerze RDS aplikację RemoteAPP .NET 4.5 dla systemu Windows2008R2. 300 równoczesnych użytkowników klastra NLB z 3 hostami.Prawidłowy sposób aktualizowania aplikacji RemoteAPP za pomocą NGEN

Aplikacja jest nadal aktywnie rozwijana, a wdrożone zespoły RemoteAPP muszą być aktualizowane (często zastępowane nowymi).

Jak obecnie zrobić to w następujący sposób:

  1. Zmiana nazwy plików mają być zmienione na serwerze RemoteApp z użytkowników podłączonych do niego (OS nie pozwoli pliki zostaną nadpisane, jeżeli są one ładowane),
  2. Wpisz nowe pliki zamiast starych,
  3. NGEN zainstalować nowe zespoły (bez uprzedniego odinstalowywania starych!),
  4. Powiadamianie użytkowników (przez samą aplikacją), że wersja aplikacji została zmieniona i musi zostać ponownie uruchomiony,
  5. Stopniowo pozwól użytkownikom na ponowne uruchomienie aplikacji w ich tempie (jednoczesne ponowne uruchomienie aplikacji spowoduje zwiększenie obciążenia dysku i procesora, co z kolei spowoduje obniżenie wydajności serwera). I tak dla wszystkich hostów w klastrze.

Po tym, serwer bywał sporadycznie krytycznym błedem przy błędzie krytycznym Microsoft Windows-Kernel-Power EventID 41 - i bardzo uważam, że nasza praktyka aktualizacji jest odpowiedzialna za to.

Stąd pytanie: jaki jest zalecany sposób aktualizowania aplikacji RemoteAPP i instalowania nowych zespołów, bez konieczności przerywania procesów uzyskujących dostęp do starych złożeń (tj. Zezwalania użytkownikom na kontynuowanie i ponowne uruchamianie, gdy mają na to ochotę).

Dziękuję.

+0

Czy można znaleźć rozsądną odpowiedź na to pytanie? – Marty

+0

Czy byłoby możliwe wdrożenie rozwiązania Hyper-V? nowa wersja może zostać wdrożona w instancji shadow, a adres ip ponownie przydzielony, gdy będzie gotowy do uruchomienia. jeśli oddzielisz przedni i tylny koniec, będzie to również całkiem minimalne obciążenie ... –

+0

Nie, nie byłem w stanie znaleźć rozsądnej odpowiedzi na to pytanie. Zamiast tego zatrzymaliśmy NGEN-ing złożeń i zwiększonych zasobów systemowych. niebieski ekran nie pojawił się od tego czasu. – user1029848

Odpowiedz

0

Można użyć aplikacji startowej, która jest publikowana za pośrednictwem RemoteApp. Rozrusznik będzie z kolei uruchamiał najnowszą wersję aplikacji.

Ex: mieć klucz rejestru, który jest ścieżką do najnowszej wersji aplikacji

  1. dodać nowy folder C:\Program Files\myApp\1.0.26\
  2. ngen nowe złożeń
  3. aktualizacji klucza rejestru, aby wskazać nowy folder
  4. Launcher, po uruchomieniu, uruchamia nową wersję aplikacji
  5. Opcjonalnie, usuń starą wersję, gdy nie jest już używana

punkty RemoteApp do C:\Program Files\myApp\startApp.exe

startApp.exe rozpoczyna 1.0.26\theApp.exe

1

Polecam przyspieszając swoje aplikacje internetowe przy użyciu nowego "Inicjalizacja modułu aplikacji do IIS 7.5" i "Application inicjujących" jest wbudowany w IIS 8 zamiast ngen.

Oświadczenia strony internetowej firmy Microsoft: Inicjowanie aplikacji IIS dla IIS 7.5 umożliwia administratorom serwisów WWW poprawę szybkości reakcji ich witryn sieci Web poprzez ładowanie aplikacji WWW przed pierwszym żądaniem.

referencyjny: http://weblog.west-wind.com/posts/2013/Oct/02/Use-IIS-Application-Initialization-for-keeping-ASPNET-Apps-alive