Prekompilowanie witryny internetowej (C#)
Program Visual Studio oferuje deweloperom ASP.NET dwa typy projektów: projekty aplikacji internetowych (WAPs) i projekty witryn sieci Web (WSP). Jedną z kluczowych różnic między dwoma typami projektu jest to, że WAPs musi jawnie skompilować kod przed wdrożeniem, podczas gdy kod w programie WSP może być automatycznie skompilowany na serwerze internetowym. Jednak przed wdrożeniem można wstępnie skompilować dostawcę usług WSP. W tym samouczku przedstawiono zalety prekompilacji i pokazano, jak wstępnie skompilować witrynę internetową z poziomu programu Visual Studio i wiersza polecenia.
Wprowadzenie
Program Visual Studio oferuje deweloperom ASP.NET dwa różne typy projektów: projekty aplikacji internetowych (WAP) i projekty witryn sieci Web (WSP). Jedną z kluczowych różnic między tymi typami projektów jest to, że WAPs wymagają jawnej kompilacji , podczas gdy dostawcy usług WSP domyślnie używają automatycznej kompilacji. W usłudze WAPs skompilujesz kod aplikacji internetowej w jednym zestawie, który jest tworzony w folderze witryny internetowej Bin
. Wdrożenie wiąże się z kopiowaniem zawartości znaczników ( .aspx.ascx
plików i .master
) w projekcie wraz z zestawem w Bin
folderze; same pliki klas za kodem nie muszą być wdrażane. Z drugiej strony wdrażasz dostawcy usług WSPS, kopiując zarówno strony znaczników, jak i odpowiadające im klasy kodu do środowiska produkcyjnego. Klasy kodu są kompilowane na żądanie na serwerze internetowym.
Uwaga
Zapoznaj się z sekcją "Jawna kompilacja a automatyczna kompilacja" w samouczku Określanie plików, które należy wdrożyć, aby uzyskać więcej informacji na temat różnic między modelami projektu, jawną i automatyczną kompilacją oraz wpływ modelu kompilacji na wdrożenie.
Opcja automatycznej kompilacji jest prosta do użycia. Nie ma jawnego kroku kompilacji i należy wdrożyć tylko pliki, które zostały zmodyfikowane, natomiast jawna kompilacja wymaga wdrożenia zmienionych stron znaczników i właśnie skompilowanego zestawu. Jednak wdrożenie automatyczne ma dwie potencjalne wady:
- Ponieważ strony muszą być automatycznie kompilowane po pierwszym odwiedzeniu, może wystąpić krótkie, ale zauważalne opóźnienie, gdy zostanie zażądana strona ASP.NET po raz pierwszy po wdrożeniu.
- Automatyczna kompilacja wymaga obecności zarówno deklaratywnego znaczników, jak i kodu źródłowego na serwerze internetowym. Może to być opcja nieatrakcyjna, jeśli planujesz sprzedawanie aplikacji internetowej klientom, którzy zainstalują ją na swoich serwerach internetowych.
Jeśli któreś z dwóch powyższych niedociągnięć to wyłączniki transakcji, możesz przełączyć się do modelu WAP lub wstępnie skompilować dostawcę usług WSP przed wdrożeniem. Ten samouczek analizuje opcje prekompilacji najlepiej dopasowane do hostowanej witryny internetowej i przeprowadzi cię przez proces prekompilacji i wdrożenie wstępnie skompilowanej witryny internetowej.
Omówienie generowania i kompilacji kodu ASP.NET
Zanim przyjrzymy się dostępnym opcjom wstępnego kompilowania, najpierw porozmawiajmy o generowaniu i kompilacji kodu, która występuje, gdy zostanie zażądana strona ASP.NET po raz pierwszy od momentu utworzenia lub ostatniej aktualizacji. Jak wiesz, strony ASP.NET składają się z dwóch części: deklaratywnego znaczników w .aspx
pliku; i części kodu źródłowego, zazwyczaj w osobnym pliku klasy za kodem (.aspx.cs
). Kroki wykonywane przez środowisko uruchomieniowe, gdy żądana jest strona ASP.NET, zależy od modelu kompilacji aplikacji.
W przypadku dostawców usługi WAPs kod źródłowy stron musi być jawnie skompilowany w jednym zestawie przed wdrożeniem. Podczas wdrażania ten zestaw i różne strony znaczników są kopiowane do środowiska produkcyjnego. Po nadejściu żądania do serwera internetowego dla strony ASP.NET środowisko uruchomieniowe tworzy wystąpienie klasy za pomocą kodu strony i wywołuje jego ProcessRequest
metodę, która uruchamia cykl życia strony, a ostatecznie generuje zawartość strony, która jest zwracana do osoby żądającej. Środowisko uruchomieniowe może pracować z klasą kodu za stroną ASP.NET, ponieważ klasa za kodem została już skompilowana w zestawie przed wdrożeniem.
W przypadku dostawców usług WSPs i automatycznej kompilacji nie ma jawnego kroku kompilacji przed wdrożeniem. Zamiast tego wdrożenie obejmuje kopiowanie zawartości deklaratywnej i kodu źródłowego do środowiska produkcyjnego. Gdy żądanie zostanie dostarczone do serwera internetowego dla strony ASP.NET po raz pierwszy od momentu utworzenia lub ostatniej aktualizacji strony, środowisko uruchomieniowe musi najpierw skompilować klasę kodu za pomocą zestawu. Ten skompilowany zestaw jest zapisywany w folderze %WINDIR%\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files
, chociaż lokalizację tego folderu można dostosować za pomocą <compilation tempDirectory="" />
elementu , <system.web>
zwykle w Web.config
pliku . Ponieważ zestaw jest zapisywany na dysku, nie musi być ponownie skompilowany na kolejnych żądaniach do tej samej strony.
Uwaga
Jak można się spodziewać, podczas żądania strony po raz pierwszy (lub po raz pierwszy, ponieważ została zmieniona) w witrynie, która używa automatycznej kompilacji, ponieważ trwa chwilę, aż serwer skompiluje kod strony i zapisz wynikowy zestaw na dysku.
Krótko mówiąc, w przypadku jawnej kompilacji wymagane jest skompilowanie kodu źródłowego witryny internetowej przed wdrożeniem, co pozwala zaoszczędzić środowisko uruchomieniowe przed wykonaniem tego kroku. Dzięki automatycznej kompilacji środowisko uruchomieniowe obsługuje kompilację kodu źródłowego stron, ale z niewielkim kosztem inicjowania pierwszej wizyty na stronie od momentu utworzenia lub ostatniej aktualizacji.
Ale co z deklaratywną częścią stron ASP.NET ( .aspx
plik)? Oczywiste jest, że istnieje relacja między plikami .aspx
a kodem w klasach kodu, ponieważ kontrolki sieci Web zdefiniowane w deklaratywnej adiustacji są dostępne w kodzie. Jest również oczywiste, że zawartość w .aspx
plikach znacznie wpływa na renderowane znaczniki wygenerowane przez stronę. W jaki sposób środowisko uruchomieniowe działa ze składnią tekstu, html i kontrolki sieci Web zdefiniowaną w pliku w .aspx
celu wygenerowania zawartości renderowanej żądanej strony?
Nie chcę być zbyt sidetracked na poziomie szczegółów implementacji niskiego poziomu, które różnią się między WAPs i WSPs, ale w skrócie środowisko uruchomieniowe automatycznie generuje plik klasy, który zawiera różne kontrolki sieci Web jako chronione elementy członkowskie i metody. Ten wygenerowany plik jest implementowany jako klasa częściowa odpowiadającej klasie kod-behind. (Klasy częściowe umożliwiają rozłożenie zawartości pojedynczej klasy na wiele plików). W związku z tym klasa za pomocą kodu jest definiowana w dwóch miejscach: w .aspx.cs
utworzonym pliku i w tej automatycznie wygenerowanej klasie utworzonej przez środowisko uruchomieniowe. Ta automatycznie wygenerowana klasa jest przechowywana w folderze %WINDIR%\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files
.
Ważne jest to, że aby strona ASP.NET została renderowana przez środowisko uruchomieniowe zarówno jego części deklaratywne, jak i części kodu źródłowego muszą zostać skompilowane w zestawie. W przypadku WAPs kod źródłowy jest jawnie kompilowany w zestawie przed wdrożeniem, ale deklaratywne znaczniki muszą być nadal konwertowane na kod i kompilowane przez środowisko uruchomieniowe na serwerze internetowym. W przypadku dostawców usług WSPs korzystających z automatycznej kompilacji należy skompilować zarówno kod źródłowy, jak i deklaratywny znaczniki przez serwer internetowy.
Istnieje możliwość użycia jawnej kompilacji z modelem programu WSP. Możesz jawnie skompilować część kodu źródłowego, na przykład za pomocą modelu WAP. Co więcej, można również skompilować deklaratywne znaczniki.
Opcje prekompilacji
.NET Framework jest dostarczany z narzędziem do kompilacji ASP.NET (aspnet_compiler.exe
), które umożliwia skompilowanie kodu źródłowego (a nawet zawartości) aplikacji ASP.NET utworzonej przy użyciu modelu programu WSP. To narzędzie zostało wydane z .NET Framework w wersji 2.0 i znajduje się w %WINDIR%\Microsoft.NET\Framework\v2.0.50727
folderze. Można go użyć z poziomu wiersza polecenia lub uruchomionego z poziomu programu Visual Studio za pośrednictwem opcji Publikuj witrynę sieci Web w menu Kompilacja.
Narzędzie do kompilacji udostępnia dwie ogólne formy kompilacji: wstępne kompilowanie w miejscu i wstępne kompilowanie na potrzeby wdrożenia. Dzięki wstępnie skompilacji w miejscu uruchomisz aspnet_compiler.exe
narzędzie z wiersza polecenia i określ ścieżkę do katalogu wirtualnego lub ścieżki fizycznej witryny internetowej, która znajduje się na komputerze. Następnie narzędzie do kompilacji kompiluje każdą stronę ASP.NET w projekcie, przechowując skompilowana wersję w %WINDIR%\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files
folderze tak samo jak wtedy, gdy strony były odwiedzane po raz pierwszy z przeglądarki. Wstępne kompilowanie w miejscu może przyspieszyć pierwsze żądanie złożone do nowo wdrożonych stron ASP.NET w witrynie, ponieważ złagodzi to, że środowisko uruchomieniowe musi wykonać ten krok. Jednak wstępne komkompilowanie w miejscu nie jest przydatne w przypadku większości hostowanych witryn internetowych, ponieważ wymaga, aby można było uruchamiać programy z wiersza polecenia serwera internetowego. W środowiskach hostingu współużytkowanego ten poziom dostępu nie jest dozwolony.
Uwaga
Aby uzyskać więcej informacji na temat wstępnego kompilowania w miejscu, zobacz How To: Precompile ASP.NET Web Sites and Precompilation in ASP.NET 2.0 (Instrukcje: wstępne kompilowanie witryn sieci Web i prekompilacja w ASP.NET 2.0).
Zamiast kompilować strony w witrynie internetowej do Temporary ASP.NET Files
folderu, wstępne kompilowanie dla wdrożenia kompiluje strony do wybranego katalogu i w formacie, który można wdrożyć w środowisku produkcyjnym.
W tym samouczku przedstawiono dwie wersje prekompilacji: wstępne skompilowanie przy użyciu interfejsu użytkownika z możliwością aktualizacji oraz wstępne skompilowanie przy użyciu interfejsu użytkownika, który nie jest aktualizowalny. Wstępne skompilowanie za pomocą interfejsu użytkownika z możliwością aktualizacji pozostawia deklaratywne znaczniki w .aspx
plikach , .ascx
i .master
, dzięki czemu deweloper może wyświetlać i, w razie potrzeby, modyfikować deklaratywne znaczniki na serwerze produkcyjnym. Wstępne skompilowanie przy użyciu interfejsu użytkownika nienadającego się do zaktualizowania generuje .aspx
strony, które są puste dla każdej zawartości i usuwa .ascx
.master
i pliki, ukrywając w ten sposób deklaratywne znaczniki i zabraniając deweloperowi zmiany go ze środowiska produkcyjnego.
Wstępne skompilowanie wdrożenia za pomocą interfejsu użytkownika z możliwością aktualizacji
Najlepszym sposobem zrozumienia prekompilacji wdrożenia jest sprawdzenie przykładu w akcji. Wstępnie skompilujmy program WSP recenzji książek do wdrożenia przy użyciu interfejsu użytkownika z możliwością aktualizacji. Narzędzie do kompilacji ASP.NET można wywołać z menu Kompilacja programu Visual Studio lub z poziomu wiersza polecenia. Ta sekcja analizuje użycie narzędzia z poziomu programu Visual Studio; Sekcja "Wstępne kompilowanie z wiersza polecenia" analizuje uruchamianie narzędzia kompilatora z wiersza polecenia.
Otwórz program WSP Recenzja książki w programie Visual Studio, przejdź do menu Kompilacja i wybierz opcję Menu Publikuj witrynę internetową. Spowoduje to uruchomienie okna dialogowego Publikowanie witryny sieci Web (patrz Rysunek 1), w którym można określić lokalizację docelową, niezależnie od tego, czy interfejs użytkownika wstępnie skompilowanej witryny jest aktualizowalny, a inne opcje narzędzi kompilatora. Lokalizacja docelowa może być zdalnym serwerem internetowym lub serwerem FTP, ale na razie wybierz folder na dysku twardym komputera. Ponieważ chcemy wstępnie skompilować witrynę z aktualizowalnym interfejsem użytkownika, zaznacz pole wyboru "Zezwalaj na aktualizację tej wstępnie skompilowanej witryny" i kliknij przycisk OK.
Rysunek 1. Narzędzie kompilacji ASP.NET będzie wstępnie skompilować witrynę internetową do określonej lokalizacji docelowej
(Kliknij, aby wyświetlić obraz o pełnym rozmiarze)
Uwaga
Opcja Publikuj witrynę sieci Web w menu Kompilacja nie jest dostępna w programie Visual Web Developer. Jeśli używasz programu Visual Web Developer, musisz użyć wersji wiersza polecenia narzędzia do kompilacji ASP.NET, które zostało omówione w sekcji "Wstępne kompilowanie z wiersza polecenia".
Po wstępnym skompilowaniu witryny internetowej przejdź do lokalizacji docelowej wprowadzonej w oknie dialogowym Publikowanie witryny sieci Web. Poświęć chwilę, aby porównać zawartość tego folderu z zawartością witryny internetowej. Rysunek 2 przedstawia folder witryny sieci Web Recenzje książek. Należy pamiętać, że zawiera zarówno pliki, jak .aspx
i .aspx.cs
. Należy również pamiętać, że Bin
katalog zawiera tylko jeden plik, Elmah.dll
który dodaliśmy w poprzednim samouczku
Rysunek 2. Katalog projektu zawiera .aspx
pliki i .aspx.cs
Bin
zawiera tylko folder Elmah.dll
(Kliknij, aby wyświetlić obraz o pełnym rozmiarze)
Rysunek 3 przedstawia folder lokalizacji docelowej, którego zawartość została utworzona przez narzędzie do kompilacji ASP.NET. Ten folder nie zawiera żadnych plików za pomocą kodu. Ponadto katalog tego folderu Bin
zawiera kilka zestawów i dwa .compiled
pliki oprócz Elmah.dll
zestawu.
Rysunek 3. Folder lokalizacji docelowej zawiera pliki do wdrożenia
(Kliknij, aby wyświetlić obraz w pełnym rozmiarze)
W przeciwieństwie do jawnej kompilacji w usłudze WAPs, wstępna kompilacja procesu wdrażania nie tworzy jednego zestawu dla całej lokacji. Zamiast tego dzieli kilka stron na poszczególne zestawy. Kompiluje Global.asax
również plik (jeśli istnieje) do własnego zestawu, a także wszystkie klasy w folderze App_Code
. Pliki, które przechowują deklaratywne znaczniki dla ASP.NET stron sieci Web, kontrolek użytkownika i strony wzorcowe (.aspx
.ascx
odpowiednio , i .master
pliki) są kopiowane jako do katalogu lokalizacji docelowej. Web.config
Podobnie plik jest kopiowany bezpośrednio wraz z dowolnymi plikami statycznymi, takimi jak obrazy, klasy CSS i pliki PDF. Bardziej formalny opis sposobu obsługi różnych typów plików przez narzędzie kompilacji można znaleźć w temacie Obsługa plików podczas ASP.NET prekompilacji.
Uwaga
Możesz poinstruować narzędzie kompilacji, aby utworzyło jeden zestaw na stronę ASP.NET, kontrolkę użytkownika lub stronę wzorcową, zaznaczając pole wyboru "Używane stałe nazewnictwo i zestawy jednostronicowe" w oknie dialogowym Publikowanie witryny sieci Web. Każda strona ASP.NET skompilowana we własnym zestawie umożliwia bardziej szczegółową kontrolę nad wdrożeniem. Jeśli na przykład zaktualizowano pojedynczą stronę internetową ASP.NET i konieczne było wdrożenie tej zmiany, musisz wdrożyć tylko plik tej strony .aspx
i skojarzony zestaw w środowisku produkcyjnym. Aby uzyskać więcej informacji, zobacz How To: Generate Fixed Names with the ASP.NET Compilation Tool (Instrukcje: generowanie stałych nazw za pomocą narzędzia do kompilacji ASP.NET ).
Katalog lokalizacji docelowej zawiera również plik, który nie był częścią wstępnie skompilowanego projektu internetowego, a mianowicie PrecompiledApp.config
. Ten plik informuje środowisko uruchomieniowe ASP.NET o tym, że aplikacja została wstępnie skompilowana i czy została wstępnie skompilowana przy użyciu interfejsu użytkownika z możliwością aktualizacji, czy też bez aktualizacji.
Na koniec poświęć chwilę, aby otworzyć jeden z .aspx
plików w lokalizacji docelowej przy użyciu programu Visual Studio lub wybranego edytora tekstów. W przypadku wstępnej kompilacji wdrożenia przy użyciu interfejsu użytkownika z możliwością aktualizacji strony ASP.NET w katalogu lokalizacji docelowej zawierają dokładnie takie same znaczniki jak odpowiednie pliki w witrynie internetowej.
Wstępne komkompilowanie wdrożenia przy użyciu interfejsu użytkownika, który nie jest aktualizowalny
Za pomocą narzędzia kompilatora ASP.NET można również wstępnie skompilować lokację na potrzeby wdrożenia z niedatowalnym interfejsem użytkownika. Wstępne skompilowanie witryny z niedatowalnym interfejsem użytkownika działa podobnie jak wstępne komplikowanie z aktualizowalnym interfejsem użytkownika, co jest kluczową różnicą w tym, że strony ASP.NET, kontrolki użytkownika i strony wzorcowe w katalogu docelowym są pozbawione ich znaczników. Aby wstępnie skompilować witrynę internetową do wdrożenia z niedatowanym interfejsem użytkownika, wybierz opcję Publikuj witrynę sieci Web z menu Kompilacja, ale usuń zaznaczenie opcji "Zezwalaj na aktualizację tej wstępnie skompilowanej witryny" (zobacz Rysunek 4).
Rysunek 4. Usuń zaznaczenie opcji "Zezwalaj na aktualizację tej wstępnie skompilowanej witryny", aby wstępnie skompilować z niedatowalnym interfejsem użytkownika
(Kliknij, aby wyświetlić obraz w pełnym rozmiarze)
Rysunek 5 przedstawia folder lokalizacji docelowej po wstępnym skompilowaniu przy użyciu niepodlegającego aktualizacji interfejsu użytkownika.
Rysunek 5. Folder lokalizacji docelowej dla wdrożenia z niedatowalnym interfejsem użytkownika
(Kliknij, aby wyświetlić obraz w pełnym rozmiarze)
Porównaj rysunek 3 z Rysunku 5. Chociaż dwa foldery mogą wyglądać identycznie, pamiętaj, że folder interfejsu użytkownika niepodlegający aktualizacji nie ma strony wzorcowej . Site.master
I chociaż rysunek 5 zawiera różne strony ASP.NET, jeśli wyświetlisz zawartość tych plików, zobaczysz, że zostały one usunięte z tagów deklaratywnych i zastąpione tekstem zastępczym: "Jest to plik znacznikowy wygenerowany przez narzędzie prekompilacji i nie powinien zostać usunięty!"
Rysunek 5. Znacznik deklaratywny został usunięty ze stron ASP.NET
Foldery Bin
na rysunkach 3 i 5 różnią się znacznie bardziej szczegółowo. Oprócz zestawów folder na Bin
rysunku 5 zawiera .compiled
plik dla każdej strony ASP.NET, kontrolki użytkownika i strony wzorcowej.
Wstępne skompilowanie witryny z niedatowalnym interfejsem użytkownika jest przydatne w sytuacjach, w których nie chcesz, aby zawartość stron ASP.NET została zmodyfikowana przez osobę lub firmę, która instaluje lub zarządza witryną internetową w środowisku produkcyjnym. Jeśli tworzysz ASP.NET aplikację internetową, którą sprzedajesz klientom do zainstalowania na własnych serwerach internetowych, warto upewnić się, że nie modyfikują wyglądu i działania witryny, edytując .aspx
bezpośrednio dostarczane strony. Wstępnie skompilując witrynę internetową przy użyciu interfejsu użytkownika, który nie jest aktualizowalny, wysyłasz strony zastępcze .aspx
w ramach instalacji, co uniemożliwia klientom badanie lub modyfikowanie ich zawartości.
Wstępne komplikowanie z wiersza polecenia
W tle okno dialogowe Publikowanie witryny sieci Web programu Visual Studio wywołuje narzędzie do kompilacji ASP.NET (aspnet_compiler.exe
), aby wstępnie skompilować witrynę internetową. Alternatywnie możesz wywołać to narzędzie z poziomu wiersza polecenia. Jeśli używasz programu Visual Web Developer, musisz uruchomić narzędzie kompilatora z wiersza polecenia, ponieważ menu Kompilacja programu Visual Web Developer nie zawiera opcji Publikuj witrynę sieci Web.
Aby użyć narzędzia kompilatora z wiersza polecenia, zacznij od upuszczania do wiersza polecenia i przechodzenia do katalogu struktury , %WINDIR%\Microsoft.NET\Framework\v2.0.50727
. Następnie wprowadź następującą instrukcję w wierszu polecenia:
aspnet_compiler -p "physical_path_to_app" -v / -f -u "target_location_folder"
Powyższe polecenie uruchamia narzędzie kompilatora ASP.NET (aspnet_compiler.exe
), a za pośrednictwem -p
przełącznika powoduje wstępne skompilowanie witryny internetowej z physical_path_to_app; ta wartość będzie podobna C:\MySites\BookReviews
do , i powinna być rozdzielana cudzysłowami.
Przełącznik -v
określa katalog wirtualny lokacji. Jeśli witryna jest zarejestrowana jako domyślna witryna internetowa w metabazie usług IIS, możesz pominąć -p
przełącznik i po prostu określić katalog wirtualny aplikacji. Jeśli używasz przełącznika -p
, wartość przechodząca -v
przez przełącznik wskazuje katalog główny witryny internetowej i służy do rozpoznawania odwołań do katalogu głównego aplikacji. Jeśli na przykład określisz -v /MySite
wartość , odwołania w aplikacji ~/path/file
zostaną rozpoznane jako ~/MySite/path/file
. Ponieważ witryna Recenzje książek znajduje się w katalogu głównym w mojej firmie hostingowej sieci Web użyłem przełącznika -v /
.
Jeśli -f
przełącznik jest obecny, nakazuje narzędziu kompilacji zastąpienie katalogu target_location_folder , jeśli już istnieje. Jeśli pominiesz -f
przełącznik i folder lokalizacji docelowej już istnieje, narzędzie kompilacji zakończy działanie z powodu błędu: "błąd ASPRUNTIME: katalog docelowy nie jest pusty. Usuń go ręcznie lub wybierz inny element docelowy".
Jeśli -u
przełącznik jest obecny, informuje narzędzie o utworzeniu aktualizowalnego interfejsu użytkownika. Pomiń ten przełącznik, aby wstępnie skompilować witrynę przy użyciu interfejsu użytkownika, który nie jest aktualizowalny.
Na koniec target_location_folder jest ścieżką fizyczną do katalogu lokalizacji docelowej; ta wartość będzie podobna do C:\MySites\Output\BookReviews
, i powinna być rozdzielana znakami cudzysłowu.
Wdrażanie wstępnie skompilowanej witryny internetowej
W tym momencie widzieliśmy, jak używać narzędzia do kompilacji ASP.NET w celu wstępnego kompilowania witryny internetowej przy użyciu opcji interfejsu użytkownika, które można aktualizować i nie można aktualizować. Jednak nasze przykłady do tej pory wstępnie skompilowały witrynę internetową do folderu lokalnego, a nie do środowiska produkcyjnego. Dobrą wiadomością jest to, że wdrożenie wstępnie skompilowanej witryny internetowej jest proste i można je wykonać za pośrednictwem programu Visual Studio lub za pośrednictwem innego mechanizmu kopiowania plików, takiego jak z autonomicznego klienta FTP.
Okno dialogowe Publikowanie witryny sieci Web (po raz pierwszy pokazane na rysunku 1) ma opcję lokalizacji docelowej, która wskazuje, gdzie są kopiowane wstępnie skompilowane pliki witryny sieci Web. Ta lokalizacja może być zdalnym serwerem internetowym lub serwerem FTP. Wprowadzenie serwera zdalnego do tego pola tekstowego wstępnie kompiluje i wdraża witrynę internetową na określonym serwerze w jednym kroku. Alternatywnie możesz wstępnie skompilować witrynę internetową do folderu lokalnego, a następnie ręcznie skopiować zawartość tego folderu do środowiska produkcyjnego za pośrednictwem protokołu FTP lub innego podejścia.
Automatyczne wdrażanie wstępnie skompilowanej witryny internetowej za pośrednictwem okna dialogowego Publikowanie witryny sieci Web programu Visual Studio jest przydatne w przypadku prostych witryn, w których nie ma żadnych różnic w konfiguracji między środowiskami deweloperskimi i produkcyjnymi. Jednak, jak wspomniano w artykule Common Configuration Differences Between Development and Production tutorial (Typowe różnice konfiguracji między programowaniem i produkcją), nie jest rzadkością, aby takie różnice istniały. Na przykład aplikacja internetowa Book Reviews używa innej bazy danych w środowisku produkcyjnym niż w środowisku deweloperskim. Gdy program Visual Studio publikuje witrynę internetową na serwerze zdalnym, w ślepy sposób kopiuje informacje o pliku konfiguracji w środowisku programistycznym.
W przypadku lokacji z różnicami konfiguracji między środowiskami deweloperskimi i produkcyjnym najlepszym rozwiązaniem może być wstępne skompilowanie lokacji do katalogu lokalnego, skopiowanie plików konfiguracyjnych specyficznych dla środowiska produkcyjnego, a następnie skopiowanie zawartości wstępnie skompilowanych danych wyjściowych do środowiska produkcyjnego.
Aby odświeżyć informacje dotyczące kopiowania plików ze środowiska deweloperskiego do środowiska produkcyjnego, zapoznaj się z samouczkami Wdrażanie witryny internetowej przy użyciu klienta FTP i Wdrażanie witryny internetowej przy użyciu programu Visual Studio .
Podsumowanie
ASP.NET obsługuje dwa tryby kompilacji: automatyczny i jawny. Zgodnie z opisem w poprzednich samouczkach projekty aplikacji internetowych (WAPs) używają jawnej kompilacji, natomiast projekty witryn sieci Web (WSP) domyślnie używają automatycznej kompilacji. Można jednak jawnie skompilować dostawcę WSP przed wdrożeniem przy użyciu narzędzia do kompilacji ASP.NET.
Ten samouczek koncentruje się na prekompilacji narzędzia kompilacji na potrzeby obsługi wdrożenia. Podczas wstępnej kompilacji wdrożenia narzędzie kompilacji tworzy folder lokalizacji docelowej, kompiluje kod źródłowy określonej aplikacji internetowej i kopiuje te skompilowane zestawy i pliki zawartości do folderu lokalizacji docelowej. Narzędzie do kompilacji można skonfigurować tak, aby utworzyć aktualizowalny lub nie aktualizowalny interfejs użytkownika. W przypadku wstępnej kompilacji z opcją interfejsu użytkownika nienadającego się do aktualizacji znaczniki deklaratywne w plikach zawartości są usuwane. W skrócie prekompilacja umożliwia wdrożenie aplikacji opartej na projekcie witryny sieci Web bez dołączania plików kodu źródłowego i usunięcia deklaratywnego znaczników, jeśli jest to konieczne.
Szczęśliwe programowanie!
Dalsze informacje
Aby uzyskać więcej informacji na temat tematów omówionych w tym samouczku, zapoznaj się z następującymi zasobami: