Jakie są możliwe wady witryny IIS 7 mającej węzeł NTFS jako katalog główny?

13

Próbuję wymyślić sposób wdrożenia kodu ASP.NET przy możliwie najmniejszych zakłóceniach witryny. Jedną z myśli było skonfigurowanie witryny do obsługi z węzła NTFS c:\www\example.comgdzie

c:\www\example.com -> c:\www\example.com_r1234

Następnie, po wdrożeniu nowego kodu, zostaje on skopiowany c:\www\site.com_r1235i połączenie zostaje przekierowane na

c:\www\example.com -> c:\www\example.com_r1235

Więc moje pytanie dotyczy tego, jaki wpływ może to mieć na bieżące żądania w IIS? Jakie inne wady może to mieć z punktu widzenia reakcji IIS na zmianę (jeśli w ogóle)? Czy będzie to tak płynne dla końcowego użytkownika strony, jak mam nadzieję?

(Zastanawiałem się nad zmianą katalogu głównego witryny za pomocą wiersza polecenia, ale naprawdę nie podoba mi się pomysł rekonfiguracji usług IIS z powodu niepotrzebnej rezygnacji z domeny aplikacji lub puli aplikacji, ale nie wiem zbyt wiele na temat co się stanie, gdy skonfigurowana ścieżka fizyczna witryny zostanie zmieniona podczas obciążenia)

Dla jasności, moim jedynym zmartwieniem jest tutaj doświadczenie moich użytkowników końcowych. Moim celem jest unikanie dla nich zakłóceń, a nie wygody dla mnie.

jayrdub
źródło
1
Zresetuj katalog główny. Każdy recykling (nie sądzę , że tak się stanie) i ponowne uruchamianie puli aplikacji są wtedy a) prawdopodobnie nie są „niepotrzebne” ib) pomagają procesowi roboczemu zachować realistyczny obraz stanu jego zawartości i pamięci podręcznej. To sprytne rozwiązanie, jasne, ale sprytne rzadko oznacza stabilne. Dowiedz się, co robi większość ludzi, a następnie zrób to.
TristanK,
To świetne pytanie, od dawna szukałem odpowiedzi. Wszystko, co kiedykolwiek widziałem, to albo ciągłe wdrażanie w ramach modułu równoważenia obciążenia (którego nie mam), albo prosta kopia / svn plików do katalogu głównego (co mi się nie podoba).
jayrdub
1
Spróbuj najpierw przekierować katalog główny.
TristanK,

Odpowiedzi:

3

sposób na wdrożenie kodu ASP.NET przy możliwie najmniejszych zakłóceniach witryny.

Wygląda na to, że ten cel i proponowane rozwiązanie nie są do siebie dopasowane, ponieważ dla każdego wdrożenia masz teraz do czynienia z dodatkową pracą lub skryptami.

Jedną z rzeczy, które widziałem, jest instalacja klienta svn na serwerze produkcyjnym, a strona produkcyjna to wypisana kopia określonej lokalizacji / gałęzi w drzewie kontroli źródła. W ten sposób musisz przynajmniej zaktualizować zmienione pliki dla nowych wdrożeń.

Joel Coel
źródło
Ta operacja sieci spowodowałaby, że artefakty witryny byłyby zbyt długo niejasne. Dokładnie takiej sytuacji staram się uniknąć. Usiłuję wyeliminować czas, w którym zestawy w katalogu głównym mają różne wersje.
jayrdub
1
„Zaangażowana dodatkowa praca i skrypty” nie jest problemem, jesteśmy w pełni zautomatyzowani
jayrdub
Wydaje mi się, że uczciwość, niepokoje i wymagana praca nie są tak naprawdę tym samym
Mark Henderson
Mam na myśli
niepokojenie
2

Za moim katalogiem głównym utworzyłem folder o nazwie _images

C:\DEV\_IMAGES

następnie skopiowałem do niego kilka plików gif. Następnie utworzyłem dowiązanie symboliczne NTFS w moim katalogu głównym za pomocą

C:\DEV\PROJECT\ROOT mklink /D webimages ..\_images

W programie Visual studio 2010 „Pokaż wszystkie pliki”, a następnie odświeżam ... i dołączam nowe „obrazy internetowe” do mojego projektu. Mogę teraz wskazać ...

img src='webimages/icon.gif'

Po uruchomieniu aplikacji działa również dobrze na moim komputerze lokalnym.

Nie wiem, czy to działa na prawdziwym serwerze (IIS 7), dopóki infrastruktura się tym nie zajmie, czy ktoś wie jakieś problemy, dlaczego to nie działałoby w produkcji?

Wydaje mi się, że tak długo, jak istnieją prawa, powinien, a jeśli tak, to świetny sposób na uproszczenie udostępniania folderów (wszystkich typów) między aplikacjami internetowymi.

Nie próbowałem jeszcze tego wyrażać w TFS, więc jeśli ktoś ma na ten temat swoją opinię, daj nam znać!

Greg
źródło
0

To nie zadziała, ponieważ IIS może myśleć, że plik web.config został zmieniony przez inny program. Usługi IIS prawdopodobnie zgłoszą wyjątek System.Configuration.ConfigurationErrorsException. Sugerowałbym napisanie jakiegoś skryptu, aby po prostu zmienić katalog główny witryny.

Cory
źródło