Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
által Jason Lee
Ez a témakör azt ismerteti, hogyan konfigurálhat környezetspecifikus tulajdonságokat a Contact Manager-mintamegoldás adott célkörnyezetben való üzembe helyezéséhez.
Ez a témakör egy Fabrikam, Inc. nevű fiktív vállalat vállalati üzembehelyezési követelményein alapuló oktatóanyagok sorozatának része. Ez az oktatóanyag-sorozat egy mintamegoldást – a Contact Manager-megoldást – használ egy valós összetettségű webalkalmazás ábrázolására, beleértve egy ASP.NET MVC 3-alkalmazást, egy Windows Communication Foundation (WCF) szolgáltatást és egy adatbázisprojektet.
Az oktatóanyagok középpontjában álló üzembe helyezési módszer a buildelési folyamat megértésében leírt osztott projektfájl-megközelítésen alapul, amelyben a buildelési folyamatot két projektfájl vezérli– az egyik az összes célkörnyezetre vonatkozó buildelési utasításokat tartalmazza, a másik pedig a környezetspecifikus buildelési és üzembehelyezési beállításokat tartalmazza. A buildeléskor a környezetspecifikus projektfájl a környezetfüggő projektfájlba egyesül, hogy teljes összeállítási utasításokat hozzon létre.
Folyamat áttekintése
A Contact Manager-megoldás létrehozásához és üzembe helyezéséhez használt projektfájl két fizikai fájlra oszlik:
- Az univerzális buildbeállításokat és utasításokat tartalmazó fájl ( Publish.proj fájl).
- Olyan, amely környezetspecifikus buildbeállításokat (Env-Dev.proj, Env-Stage.proj stb.) tartalmaz.
A buildeléskor a megfelelő környezetspecifikus projektfájlt a rendszer egyesíti az univerzális Publish.proj fájllal, hogy teljes összeállítási utasításokat hozzon létre. Az üzembe helyezést adott célkörnyezetekre konfigurálhatja úgy, hogy környezetspecifikus projektfájlokat hoz létre vagy szab testre a saját üzembe helyezési forgatókönyvét leíró beállításokkal.
Ezeknek az értékeknek a nagy részét a célkörnyezet konfigurálása határozza meg– különösen azt, hogy a cél webkiszolgáló a Web Deployment Agent Service (a távoli ügynök) vagy a Web Deploy Handler használatára van-e konfigurálva. Ezekről a megközelítésekről és a saját környezetének megfelelő megközelítés kiválasztásával kapcsolatos további információkért lásd : A webes üzembe helyezés megfelelő megközelítésének kiválasztása.
A Contact Manager-forgatókönyvhez két környezetspecifikus projektfájl szükséges:
- Üzembe helyezés fejlesztői tesztkörnyezetben (Env-Dev.proj). A fejlesztői tesztkörnyezet úgy van konfigurálva, hogy távoli üzembe helyezéseket fogadjon el a távoli ügynökkel, a következő forgatókönyv szerint: Tesztkörnyezet konfigurálása webes üzembe helyezéshez. Ennek a fájlnak meg kell adnia a távoli ügynök végpontcímét, valamint a helyspecifikus beállításokat, például a kapcsolati sztringeket és a szolgáltatásvégpontokat.
- Üzembe helyezés átmeneti környezetben (Env-Stage.proj). Az átmeneti környezet úgy van konfigurálva, hogy a Web Deploy Handler használatával fogadja el a távoli telepítéseket, az alábbi forgatókönyv szerint: Átmeneti környezet konfigurálása webes üzembe helyezéshez. Ennek a fájlnak meg kell adnia a Web Deploy Handler végpontcímét, valamint a helyspecifikus beállításokat, például a kapcsolati sztringeket és a szolgáltatásvégpontokat.
Fontos megjegyezni, hogy a környezetspecifikus projektfájlban konfigurált beállítások nem befolyásolják a webes csomag tartalmát– ehelyett a csomag üzembe helyezését és a csomag kinyerésekor megadott paraméterértékeket határozzák meg. A webcsomagot manuálisan importálja az éles környezetbe a következő forgatókönyv szerint: Éles környezet konfigurálása webes üzembe helyezéshez és webcsomagok manuális telepítése, így nem számít, hogy milyen beállításokat használt a környezetspecifikus projektfájlban a csomag létrehozásakor. Az Internet Information Services (IIS) kezelője a csomag importálásakor minden paraméteres értéket, például kapcsolati sztringet és szolgáltatásvégpontot kér.
A Contact Manager-megoldás saját célkörnyezetben való üzembe helyezéséhez testre szabhatja ezt a fájlt, vagy sablonként használhatja, és létrehozhatja saját fájlját.
Környezetspecifikus üzembehelyezési beállítások konfigurálása a Contact Manager-megoldáshoz
Nyissa meg a ContactManager-WCF megoldást a Visual Studio 2010-ben.
A Megoldáskezelő ablakban bontsa ki a Publish mappát, bontsa ki az EnvConfig mappát, majd kattintson duplán az Env-Dev.proj elemre.
Cserélje le az Env-Dev.proj fájl tulajdonságértékeit a saját tesztkörnyezetének megfelelő értékekre.
Megjegyzés:
Az eljárást követő táblázat további információkat tartalmaz ezekről a tulajdonságokról.
Mentse a munkáját, majd zárja be az Env-Dev.proj fájlt.
A megfelelő üzembehelyezési tulajdonságok kiválasztása
Ez a táblázat az Env-Dev.proj mintaprojektfájlban található egyes tulajdonságok célját ismerteti, és útmutatást nyújt a megadott értékekhez.
Ingatlan neve | Részletek |
---|---|
MSDeployComputerName A cél webkiszolgáló vagy szolgáltatásvégpont neve. | Ha a cél webkiszolgálón telepíti a távoli ügynökszolgáltatást, megadhatja a célszámítógép nevét (például TESTWEB1 vagy TESTWEB1.fabrikam.net), vagy megadhatja a távoli ügynök végpontját (például http://TESTWEB1/MSDEPLOYAGENTSERVICE ). Az üzembe helyezés minden esetben ugyanúgy működik. Ha a cél webkiszolgálón a Web Deploy Handler-t használja az üzembe helyezéshez, adja meg a szolgáltatás végpontját, és az IIS-webhely nevét is adja meg lekérdezési sztringparaméterként (például https://STAGEWEB1:8172/MSDeploy.axd?site=DemoSite ). |
MSDeployAuth Az a metódus, amelyet a Web Deploy-nak használnia kell a távoli számítógépen való hitelesítéshez. | Ennek NTLM-nek vagy Alapszintűnek kell lennie. Általában az NTLM-et fogja használni, ha a távoli ügynökszolgáltatásban helyezi üzembe, az Alapszintűt pedig a webes üzembe helyezési kezelőben. Ha alapszintű hitelesítést használ, meg kell adnia azt a felhasználónevet és jelszót is, amelyet az IIS webes üzembehelyezési eszköznek (Web Deploy) meg kell adnia az üzembe helyezés végrehajtásához. Ebben a példában ezeket az értékeket az MSDeployUsername és az MSDeployPassword tulajdonságok biztosítják. Ha NTLM-hitelesítést használ, kihagyhatja ezeket a tulajdonságokat, vagy üresen hagyhatja őket. |
MSDeployUsername Ha alapszintű hitelesítést használ, a Web Deploy ezt a fiókot fogja használni a távoli számítógépen. | Ennek tartomány*felhasználónév* (például FABRIKAM\matt) formában kell lennie. Ez az érték csak akkor használatos, ha alapszintű hitelesítést ad meg. Ha NTLM-hitelesítést használ, a tulajdonság elhagyható. Ha egy érték meg van adva, a rendszer figyelmen kívül hagyja. |
MSDeployPassword Ha alapszintű hitelesítést használ, a Web Deploy ezt a jelszót fogja használni a távoli számítógépen. | Ez az MSDeployUsername tulajdonságban megadott felhasználói fiók jelszava. Ez az érték csak akkor használatos, ha alapszintű hitelesítést ad meg. Ha NTLM-hitelesítést használ, a tulajdonság elhagyható. Ha egy érték meg van adva, a rendszer figyelmen kívül hagyja. |
ContactManagerIisPath Az IIS elérési útja, amelyen telepíteni szeretné a Contact Manager MVC alkalmazást. | Ennek kell lennie az IIS Managerben az [IIS-webhely neve]/[webalkalmazásneve] formában megjelenő elérési útnak. Ne feledje, hogy az IIS-webhelynek léteznie kell az alkalmazás üzembe helyezése előtt. Ha például létrehozott egy DemoSite nevű IIS-webhelyet, megadhatja az MVC-alkalmazás IIS-elérési útját DemoSite/ContactManager néven. |
ContactManagerServiceIisPath Az IIS elérési útja, amelyen telepíteni szeretné a Contact Manager WCF szolgáltatást. | Ha például létrehozott egy DemoSite nevű IIS-webhelyet, megadhatja a WCF szolgáltatás IIS-elérési útját DemoSite/ContactManagerService néven. |
ContactManagerTargetUrl Az URL- cím, amelyen a WCF szolgáltatás elérhető. | Ez az űrlap [IIS-webhely gyökér URL-címe]/[szolgáltatásalkalmazás neve]/[szolgáltatásvégpont] lesz. Ha például egy IIS-webhelyet hozott létre a 85-ös porton, az URL-cím a következő formát veszi fel: http://localhost:85/ContactManagerService/ContactService.svc . Ne feledje, hogy az MVC-alkalmazás és a WCF szolgáltatás ugyanazon a kiszolgálón van üzembe helyezve. Ennek eredményeképpen ez az URL-cím csak attól a géptől lesz elérhető, amelyre telepítve van. Emiatt jobb, ha az URL-ben a localhostot vagy az IP-címet használja a gépnév vagy a host fejléc helyett. Ha a gép nevét vagy egy gazdanév fejléceket használja, az IIS visszacsatolás-ellenőrzési biztonsági funkciója letilthatja az URL-címet, és az „HTTP 401.1 – Jogosulatlan” hibaüzenetet adja vissza. |
CmDatabaseConnectionString Az adatbázis-kiszolgáló kapcsolati sztringje. | A kapcsolati sztring meghatározza azokat a hitelesítő adatokat, amelyekkel a VSDBCMD kapcsolatba lép az adatbázis-kiszolgálóval, és létrehozza az adatbázist, valamint a webkiszolgáló-alkalmazáskészlet által az adatbázis-kiszolgálóval való kapcsolatfelvételhez és az adatbázissal való interakcióhoz használt hitelesítő adatokat. Lényegében két választási lehetősége van. Megadhatja az Integrated Security=true értéket, amely esetben integrált Windows-hitelesítést használ: Data Source=TESTDB1; Integrated Security=true Ebben az esetben az adatbázis a futtatható VSDBCMD-t futtató felhasználó hitelesítő adataival jön létre, és az alkalmazás a webkiszolgáló-számítógépfiók identitásával fogja elérni az adatbázist. Másik lehetőségként megadhatja egy SQL Server-fiók felhasználónevét és jelszavát. Ebben az esetben az SQL Server hitelesítő adatait a VSDBCMD használja az adatbázis létrehozásához, valamint az alkalmazáskészlet az adatbázissal való interakcióhoz: Data Source=TESTDB1; User Id=ASqlUser; Password=; A jelen témakörben ismertetett útmutatók feltételezik, hogy integrált Windows-hitelesítést fog használni. |
CmTargetDatabase Az adatbázis-kiszolgálón létrehozandó adatbázis nevét adja meg. | Az itt megadott érték paraméterként hozzáadódik a VSDBCMD parancshoz. Emellett egy teljes kapcsolati sztring létrehozásához is használható, amelyet a webkiszolgáló alkalmazáskészlete használhat az adatbázissal való interakcióhoz. |
Ezek a példák bemutatják, hogyan konfigurálhatja ezeket a tulajdonságokat adott üzembehelyezési forgatókönyvekhez.
1. példa – Üzembe helyezés a Távoli ügynök szolgáltatásban
Ebben a példában:
- A TESTWEB1-en telepíti a távoli ügynök szolgáltatását.
- A Web Deploy programot az NTLM-hitelesítés használatára utasítja. A webes üzembe helyezés a Microsoft Build Engine (MSBuild) meghívásához használt hitelesítő adatokkal fog futni.
- Integrált hitelesítést használva telepíti a(z) ContactManager adatbázist a TESTDB1-re. Az adatbázis az MSBuild meghívásához használt hitelesítő adatokkal lesz üzembe helyezve.
<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>
2. példa – Üzembe helyezés a webes üzembehelyezési kezelő végponton
Ebben a példában:
- A Web Deploy Handler szolgáltatásvégpontra telepít a STAGEWEB1 rendszeren.
- A Web Deploy programot arra utasítja, hogy alapszintű hitelesítést használjon.
- Ön azt adja meg, hogy a Web Deploy megszemélyesítse a FABRIKAM\stagingdeployer felhasználói fiókot a távoli számítógépen.
- SQL Server-hitelesítéssel telepíti a ContactManager adatbázist a 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>
Következtetés
Ezen a ponton a projektfájlok teljes mértékben konfigurálva vannak a Contact Manager-megoldás egy vagy több célkörnyezetben való létrehozásához és üzembe helyezéséhez.
Ha ezeket a projektfájlokat egy egylépéses, megismételhető üzembehelyezési folyamat részeként szeretné használni, akkor végre kell hajtania a Publish.proj fájlt az MSBuild használatával, és paraméterként meg kell adnia a környezetspecifikus projektfájl helyét. Ezt többféleképpen teheti meg:
- Az MSBuild áttekintése és az egyéni projektfájlok bemutatása: A projektfájl ismertetése.
- Az egyéni projektfájlokat végrehajtó MSBuild-parancsok kialakításával kapcsolatos információkért lásd: Webcsomagok üzembe helyezése.
- Az MSBuild parancsok egy lépésből álló, megismételhető üzembe helyezés parancsfájlba való beépítésére vonatkozó információkért lásd: Üzembehelyezési parancsfájl létrehozása és futtatása.
- Az egyéni projektfájlok Team Buildből való végrehajtásával kapcsolatos információkért lásd: Üzembe helyezést támogató builddefiníció létrehozása.