Konfigurowanie właściwości wdrożenia dla środowiska docelowego
Autor : Jason Lee
W tym temacie opisano sposób konfigurowania właściwości specyficznych dla środowiska w celu wdrożenia przykładowego rozwiązania Contact Manager w określonym środowisku docelowym.
Ten temat stanowi część serii samouczków opartych na wymaganiach dotyczących wdrażania w przedsiębiorstwie fikcyjnej firmy o nazwie Fabrikam, Inc. W tej serii samouczków użyto przykładowego rozwiązania — rozwiązania Contact Manager — do reprezentowania aplikacji internetowej o realistycznym poziomie złożoności, w tym aplikacji ASP.NET MVC 3, usługi Windows Communication Foundation (WCF) i projektu bazy danych.
Metoda wdrażania w centrum tych samouczków jest oparta na metodzie podzielonego pliku projektu opisanego w opisie procesu kompilacji, w którym proces kompilacji jest kontrolowany przez dwa pliki projektu — jeden zawierający instrukcje kompilacji, które mają zastosowanie do każdego środowiska docelowego, oraz jeden zawierający ustawienia kompilacji i wdrażania specyficzne dla środowiska. W czasie kompilacji plik projektu specyficzny dla środowiska jest scalony z plikiem projektu niezależnego od środowiska w celu utworzenia pełnego zestawu instrukcji kompilacji.
Omówienie procesu
Plik projektu używany do kompilowania i wdrażania rozwiązania Contact Manager jest podzielony na dwa pliki fizyczne:
- Taki, który zawiera uniwersalne ustawienia kompilacji i instrukcje (plik Publish.proj ).
- Taki, który zawiera ustawienia kompilacji specyficzne dla środowiska (Env-Dev.proj, Env-Stage.proj itd.).
W czasie kompilacji odpowiedni plik projektu specyficzny dla środowiska jest scalony z uniwersalnym plikiem Publish.proj w celu utworzenia pełnego zestawu instrukcji kompilacji. Wdrożenie można skonfigurować w określonych środowiskach docelowych, tworząc lub dostosowując pliki projektu specyficzne dla środowiska przy użyciu ustawień opisujących własny scenariusz wdrażania.
Wiele z tych wartości zależy od konfiguracji środowiska docelowego — w szczególności tego, czy docelowy serwer internetowy jest skonfigurowany do używania usługi Web Deployment Agent Service (agenta zdalnego) lub programu obsługi web deploy. Aby uzyskać więcej informacji na temat tych podejść i uzyskać wskazówki dotyczące wybierania odpowiedniego podejścia dla własnego środowiska, zobacz Wybieranie odpowiedniego podejścia do wdrażania w Internecie.
Scenariusz programu Contact Manager wymaga dwóch plików projektu specyficznych dla środowiska:
- Wdrażanie w środowisku testowym dewelopera (Env-Dev.proj). Środowisko testowe dewelopera jest skonfigurowane do akceptowania wdrożeń zdalnych przy użyciu agenta zdalnego, zgodnie z opisem w temacie Scenariusz: Konfigurowanie środowiska testowego na potrzeby wdrażania w Sieci Web. Ten plik musi podać adres punktu końcowego agenta zdalnego, a także ustawienia specyficzne dla lokalizacji, takie jak parametry połączenia i punkty końcowe usługi.
- Wdrażanie w środowisku przejściowym (Env-Stage.proj). Środowisko przejściowe jest skonfigurowane do akceptowania wdrożeń zdalnych przy użyciu programu obsługi web deploy zgodnie z opisem w temacie Scenariusz: Konfigurowanie środowiska przejściowego na potrzeby wdrażania w Sieci Web. Ten plik musi podać adres punktu końcowego programu obsługi programu Web Deploy, a także ustawienia specyficzne dla lokalizacji, takie jak parametry połączenia i punkty końcowe usługi.
Należy pamiętać, że ustawienia konfigurowane w pliku projektu specyficznym dla środowiska nie mają wpływu na zawartość samego pakietu internetowego — zamiast tego kontrolują sposób wdrażania pakietu i jakie wartości parametrów są udostępniane podczas wyodrębniania pakietu. Pakiet internetowy jest importowany ręcznie do środowiska produkcyjnego zgodnie z opisem w temacie Scenariusz: Konfigurowanie środowiska produkcyjnego na potrzeby wdrażania w Sieci Web i Ręczne instalowanie pakietów sieci Web, dlatego nie ma znaczenia, jakie ustawienia były używane w pliku projektu specyficznym dla środowiska podczas generowania pakietu. Menedżer usług Internet Information Services (IIS) wyświetli monit o podanie wszelkich sparametryzowanych wartości, takich jak parametry połączenia i punkty końcowe usługi, podczas importowania pakietu.
Aby wdrożyć rozwiązanie Contact Manager we własnym środowisku docelowym, możesz dostosować ten plik lub użyć go jako szablonu i utworzyć własny plik.
Aby skonfigurować ustawienia wdrożenia specyficzne dla środowiska dla rozwiązania Contact Manager
Otwórz rozwiązanie ContactManager-WCF w programie Visual Studio 2010.
W oknie Eksplorator rozwiązań rozwiń folder Publish, rozwiń folder EnvConfig, a następnie kliknij dwukrotnie plik Env-Dev.proj.
Zastąp wartości właściwości w pliku Env-Dev.proj poprawnymi wartościami dla własnego środowiska testowego.
Uwaga
Tabela, która jest zgodna z tą procedurą, zawiera więcej informacji na temat każdej z tych właściwości.
Zapisz swoją pracę, a następnie zamknij plik Env-Dev.proj .
Wybieranie odpowiednich właściwości wdrożenia
W tej tabeli opisano przeznaczenie każdej właściwości w przykładowym pliku projektu specyficznym dla środowiska Env-Dev.proj i przedstawiono wskazówki dotyczące wartości, które należy podać.
Nazwa właściwości | Szczegóły |
---|---|
MSDeployComputerName Nazwa docelowego serwera internetowego lub punktu końcowego usługi. | Jeśli wdrażasz w usłudze agenta zdalnego na docelowym serwerze sieci Web, możesz określić nazwę komputera docelowego (na przykład TESTWEB1 lub TESTWEB1.fabrikam.net) lub określić punkt końcowy agenta zdalnego (na przykład http://TESTWEB1/MSDEPLOYAGENTSERVICE ). Wdrożenie działa tak samo w każdym przypadku. Jeśli wdrażasz program obsługi web deploy na docelowym serwerze sieci Web, należy określić punkt końcowy usługi i dołączyć nazwę witryny sieci Web usług IIS jako parametr ciągu zapytania (na przykład https://STAGEWEB1:8172/MSDeploy.axd?site=DemoSite ). |
MSDeployAuth Metoda używana przez narzędzie Web Deploy do uwierzytelniania na komputerze zdalnym. | Należy ustawić wartość NTLM lub Podstawowa. Zazwyczaj w przypadku wdrażania w usłudze agenta zdalnego i podstawowego w przypadku wdrażania w programie obsługi web deploy należy użyć protokołu NTLM. Jeśli używasz uwierzytelniania podstawowego, musisz również określić nazwę użytkownika i hasło, które narzędzie wdrażania sieci Web usług IIS (Web Deploy) powinno personifikować w celu przeprowadzenia wdrożenia. W tym przykładzie te wartości są udostępniane za pośrednictwem właściwości MSDeployUsername i MSDeployPassword . Jeśli używasz uwierzytelniania NTLM, możesz pominąć te właściwości lub pozostawić je puste. |
MSDeployUsername Jeśli używasz uwierzytelniania podstawowego, narzędzie Web Deploy będzie używać tego konta na komputerze zdalnym. | Powinno to mieć postać DOMENA*nazwa_użytkownika* (na przykład FABRIKAM\matt). Ta wartość jest używana tylko w przypadku określenia uwierzytelniania podstawowego. Jeśli używasz uwierzytelniania NTLM, właściwość można pominąć. Jeśli zostanie podana wartość, zostanie ona zignorowana. |
MSDeployPassword Jeśli używasz uwierzytelniania podstawowego, narzędzie Web Deploy będzie używać tego hasła na komputerze zdalnym. | Jest to hasło dla konta użytkownika określonego we właściwości MSDeployUsername . Ta wartość jest używana tylko w przypadku określenia uwierzytelniania podstawowego. Jeśli używasz uwierzytelniania NTLM, właściwość można pominąć. Jeśli zostanie podana wartość, zostanie ona zignorowana. |
ContactManagerIisPath Ścieżka usług IIS, w której chcesz wdrożyć aplikację MVC contact Manager. | Powinna to być ścieżka wyświetlana w Menedżerze usług IIS w postaci [nazwa witryny sieci Web usług IIS]/[nazwa aplikacjiinternetowej]. Pamiętaj, że witryna internetowa usług IIS musi istnieć przed wdrożeniem aplikacji. Jeśli na przykład utworzono witrynę internetową usług IIS o nazwie DemoSite, możesz określić ścieżkę usług IIS dla aplikacji MVC jako DemoSite/ContactManager. |
ContactManagerServiceIisPath Ścieżka usług IIS, w której chcesz wdrożyć usługę WCF programu Contact Manager. | Jeśli na przykład utworzono witrynę internetową usług IIS o nazwie DemoSite, możesz określić ścieżkę usług IIS dla usługi WCF jako DemoSite/ContactManagerService. |
ContactManagerTargetUrl Adres URL, pod którym można uzyskać dostęp do usługi WCF. | Będzie to mieć postać [główny adres URL witryny sieci Web usług IIS]/[nazwa aplikacji usługi]/[punkt końcowy usługi]. Jeśli na przykład utworzono witrynę internetową usług IIS na porcie 85, adres URL będzie miał postać http://localhost:85/ContactManagerService/ContactService.svc . Należy pamiętać, że aplikacja MVC i usługa WCF są wdrażane na tym samym serwerze. W związku z tym ten adres URL jest uzyskiwany tylko z komputera, na którym jest zainstalowany. W związku z tym lepiej użyć hosta lokalnego lub adresu IP, a nie nazwy komputera lub nagłówka hosta w adresie URL. Jeśli używasz nazwy komputera lub nagłówka hosta, funkcja sprawdzania sprzężenia zwrotnego w usługach IIS może zablokować adres URL i zwrócić błąd HTTP 401.1 — Brak autoryzacji . |
CmDatabaseConnectionString Parametry połączenia serwera bazy danych. | Parametry połączenia określają zarówno poświadczenia, których usługa VSDBCMD będzie używać do kontaktowania się z serwerem bazy danych, jak i tworzenia bazy danych oraz poświadczeń używanych przez pulę aplikacji serwera internetowego do kontaktowania się z serwerem bazy danych i interakcji z bazą danych. Zasadniczo masz tutaj dwie opcje. Można określić wartość Integrated Security=true. W takim przypadku jest używane zintegrowane uwierzytelnianie systemu Windows: Źródło danych=TESTDB1;Zintegrowane zabezpieczenia=true W tym przypadku baza danych zostanie utworzona przy użyciu poświadczeń użytkownika, który uruchamia plik wykonywalny VSDBCMD, a aplikacja będzie uzyskiwać dostęp do bazy danych przy użyciu tożsamości konta komputera serwera internetowego. Alternatywnie możesz określić nazwę użytkownika i hasło konta SQL Server. W takim przypadku poświadczenia SQL Server są używane zarówno przez narzędzie VSDBCMD do utworzenia bazy danych, jak i przez pulę aplikacji do interakcji z bazą danych: Źródło danych =TESTDB1; User Id=ASqlUser; Password=Pa$$w 0rd Przewodniki w tym temacie zakładają, że użyjesz zintegrowanego uwierzytelniania systemu Windows. |
CmTargetDatabase Nazwa, którą chcesz nadać bazie danych, którą utworzysz na serwerze bazy danych. | Wartość w tym miejscu jest dodawana do polecenia VSDBCMD jako parametru. Służy również do tworzenia pełnych parametrów połączenia, których pula aplikacji na serwerze internetowym może używać do interakcji z bazą danych. |
W tych przykładach pokazano, jak można skonfigurować te właściwości dla określonych scenariuszy wdrażania.
Przykład 1 — wdrażanie w usłudze agenta zdalnego
W tym przykładzie:
- Wdrażasz w usłudze agenta zdalnego na SERWERZE TESTWEB1.
- Zalecamy, aby narzędzie Web Deploy używało uwierzytelniania NTLM. Narzędzie Web Deploy zostanie uruchomione przy użyciu poświadczeń użytych do wywołania Microsoft Build Engine (MSBuild).
- Używasz zintegrowanego uwierzytelniania do wdrożenia bazy danych ContactManager w bazie danych TESTDB1. Baza danych zostanie wdrożona przy użyciu poświadczeń użytych do wywołania programu MSBuild.
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MSDeployComputerName Condition=" '$(MSDeployComputerName)'=='' ">
TESTWEB1.fabrikam.net
</MSDeployComputerName>
<MSDeployAuth Condition=" '$(MSDeployAuth)'=='' ">NTLM</MSDeployAuth>
<ContactManagerTargetUrl Condition =" '$(ContactManagerTargetUrl)'=='' ">
http://localhost:85/ContactManagerService/ContactService.svc
</ContactManagerTargetUrl>
<ContactManagerIisPath Condition=" '$(ContactManagerIisPath)'=='' ">
DemoSite/ContactManager
</ContactManagerIisPath>
<ContactManagerServiceIisPath
Condition=" '$(ContactManagerServiceIisPath)'=='' ">
DemoSite/ContactManagerService
</ContactManagerServiceIisPath>
<CmDatabaseConnectionString Condition=" '$(CmDatabaseConnectionString)'=='' ">
Data Source=TESTDB1;Integrated Security=true</CmDatabaseConnectionString>
<CmTargetDatabase Condition=" '$(CmTargetDatabase)'=='' ">
ContactManager
</CmTargetDatabase>
</PropertyGroup>
</Project>
Przykład 2 — Wdrażanie do punktu końcowego programu obsługi web deploy
W tym przykładzie:
- Wdrażasz w punkcie końcowym usługi programu obsługi web deploy na platformie STAGEWEB1.
- Poinstruujesz narzędzie Web Deploy, aby używało uwierzytelniania podstawowego.
- Określasz, że narzędzie Web Deploy powinno personifikować konto FABRIKAM\stagingdeployer na komputerze zdalnym.
- Używasz uwierzytelniania SQL Server do wdrożenia bazy danych ContactManager w bazie danych STAGEDB1.
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MSDeployComputerName Condition=" '$(MSDeployComputerName)'=='' ">
https://STAGEWEB1:8172/MSDeploy.axd?site=DemoSite
</MSDeployComputerName>
<MSDeployAuth Condition=" '$(MSDeployAuth)'=='' ">Basic</MSDeployAuth>
<MSDeployUsername Condition=" '$(MSDeployUsername)'=='' ">
FABRIKAM\stagingdeployer
</MSDeployUsername>
<MSDeployPassword Condition=" '$(MSDeployPassword)'=='' ">
Pa$$w0rd
</MSDeployPassword>
<ContactManagerTargetUrl Condition =" '$(ContactManagerTargetUrl)'=='' ">
http://localhost:85/ContactManagerService/ContactService.svc
</ContactManagerTargetUrl>
<ContactManagerIisPath Condition=" '$(ContactManagerIisPath)'=='' ">
DemoSite/ContactManager
</ContactManagerIisPath>
<ContactManagerServiceIisPath
Condition=" '$(ContactManagerServiceIisPath)'=='' ">
DemoSite/ContactManagerService
</ContactManagerServiceIisPath>
<CmDatabaseConnectionString Condition=" '$(CmDatabaseConnectionString)'=='' ">
Data Source=STAGEDB1;User ID=sa;'$($CREDENTIAL_PLACEHOLDER$)'
</CmDatabaseConnectionString>
<CmTargetDatabase Condition=" '$(CmTargetDatabase)'=='' ">
ContactManager
</CmTargetDatabase>
</PropertyGroup>
</Project>
Podsumowanie
Na tym etapie pliki projektu są w pełni skonfigurowane do kompilowania i wdrażania rozwiązania Contact Manager w co najmniej jednym środowisku docelowym.
Aby użyć tych plików projektu w ramach jednoetapowego, powtarzalnego procesu wdrażania, należy wykonać plik Publish.proj przy użyciu programu MSBuild i przekazać lokalizację pliku projektu specyficznego dla środowiska jako parametr. Można to zrobić na różne sposoby:
- Aby zapoznać się z omówieniem programu MSBuild i wprowadzeniem do niestandardowych plików projektu, zobacz Omówienie pliku projektu.
- Aby uzyskać informacje na temat formułowania polecenia MSBuild, które wykonuje niestandardowe pliki projektu, zobacz Wdrażanie pakietów internetowych.
- Aby uzyskać informacje na temat sposobu dołączania poleceń MSBuild do pliku poleceń dla jednoetapowych, powtarzalnych wdrożeń, zobacz Tworzenie i uruchamianie pliku polecenia wdrożenia.
- Aby uzyskać informacje na temat wykonywania niestandardowych plików projektu z kompilacji zespołu, zobacz Tworzenie definicji kompilacji obsługującej wdrożenie.