Megosztás a következőn keresztül:


Üzembehelyezési tulajdonságok konfigurálása célkörnyezethez

á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:

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

  1. Nyissa meg a ContactManager-WCF megoldást a Visual Studio 2010-ben.

  2. 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.

    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.

  3. 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.

  4. 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: