Sdílet prostřednictvím


Konfigurace vlastností nasazeného cílového prostředí

od Jason Lee

Toto téma popisuje, jak nakonfigurovat vlastnosti specifické pro prostředí, aby bylo možné nasadit ukázkové řešení Contact Manageru do konkrétního cílového prostředí.

Toto téma je součástí série kurzů založených na požadavcích podnikového nasazení fiktivní společnosti s názvem Fabrikam, Inc. Tato série kurzů používá ukázkové řešení – řešení Contact Manager – k reprezentaci webové aplikace s realistickou úrovní složitosti, včetně aplikace ASP.NET MVC 3, služby Wcf (Windows Communication Foundation) a databázového projektu.

Metoda nasazení v srdci těchto kurzů je založená na přístupu rozděleného souboru projektu popsaného v tématu Principy procesu sestavení, ve kterém je proces sestavení řízen dvěma soubory projektu – jeden obsahující pokyny sestavení, které platí pro každé cílové prostředí, a jeden obsahující nastavení sestavení a nasazení specifické pro prostředí. V době sestavení se soubor projektu specifický pro prostředí sloučí do souboru projektu nezávislého na prostředí a vytvoří úplnou sadu pokynů sestavení.

Přehled procesů

Soubor projektu, který použijete k sestavení a nasazení řešení Contact Manager, je rozdělený do dvou fyzických souborů:

  • Ten, který obsahuje univerzální nastavení sestavení a pokyny (soubor Publish.proj ).
  • Jedno, které obsahuje nastavení sestavení specifické pro prostředí (Env-Dev.proj, Env-Stage.proj atd.).

V době sestavení se příslušný soubor projektu specifický pro prostředí sloučí do univerzálního souboru Publish.proj a vytvoří úplnou sadu pokynů sestavení. Nasazení můžete nakonfigurovat do konkrétních cílových prostředí vytvořením nebo přizpůsobením souborů projektu specifických pro prostředí pomocí nastavení, která popisují váš vlastní scénář nasazení.

Velké množství těchto hodnot určuje způsob konfigurace cílového prostředí – zejména jestli je cílový webový server nakonfigurovaný tak, aby používal službu agenta nasazení webu (vzdálený agent) nebo obslužnou rutinu nasazení webu. Další informace o těchto přístupech a pokyny k výběru správného přístupu pro vaše vlastní prostředí najdete v tématu Volba správného přístupu k nasazení webu.

Scénář Contact Manageru vyžaduje dva soubory projektu specifické pro prostředí:

  • Nasazení do vývojového testovacího prostředí (Env-Dev.proj). Testovací prostředí pro vývojáře je nakonfigurované tak, aby přijímalo vzdálená nasazení pomocí vzdáleného agenta, jak je popsáno ve scénáři: Konfigurace testovacího prostředí pro nasazení webu. Tento soubor musí poskytnout adresu koncového bodu vzdáleného agenta a také nastavení specifická pro umístění, jako jsou připojovací řetězce a koncové body služby.
  • Nasazení do přípravného prostředí (Env-Stage.proj). Pracovní prostředí je nakonfigurováno tak, aby přijímalo vzdálená nasazení pomocí obslužné rutiny nasazení webu, jak je popsáno ve scénáři: Konfigurace přípravného prostředí pro nasazení webu. Tento soubor musí poskytnout adresu koncového bodu Web Deploy Handleru a také nastavení specifická pro dané umístění, jako jsou například připojovací řetězce a koncové body služby.

Je důležité si uvědomit, že nastavení nakonfigurovaná v souboru projektu specifickém pro prostředí neovlivňují obsah samotného webového balíčku – místo toho určují, jak se balíček nasadí a jaké hodnoty parametrů se zadají při extrahování balíčku. Webový balíček importujete do produkčního prostředí ručně, jak je popsáno ve scénáři: Konfigurace produkčního prostředí pro nasazení webu a ruční instalace webových balíčků, takže nezáleží na nastavení, která jste použili v souboru projektu specifického pro prostředí při vygenerování balíčku. Správce internetové informační služby (IIS) vás při importu balíčku vyzve k zadání parametrizovaných hodnot, jako jsou připojovací řetězce a koncové body služby.

Pokud chcete nasadit řešení Contact Manageru do vlastního cílového prostředí, můžete ho buď přizpůsobit, nebo ho použít jako šablonu a vytvořit vlastní soubor.

Konfigurace nastavení nasazení specifického pro prostředí pro řešení Contact Manager

  1. Otevřete řešení ContactManager-WCF v sadě Visual Studio 2010.

  2. V okně Průzkumníka řešení rozbalte složku Publikovat , rozbalte složku EnvConfig a potom poklikejte na Env-Dev.proj.

    V okně Průzkumníka řešení rozbalte složku Publikovat, rozbalte složku EnvConfig a potom poklikejte na Env-Dev.proj.

  3. Nahraďte hodnoty vlastností v souboru Env-Dev.proj správnými hodnotami pro vaše vlastní testovací prostředí.

    Poznámka:

    Tabulka, která následuje za tímto postupem, poskytuje další informace o každé z těchto vlastností.

  4. Uložte svoji práci a potom zavřete soubor Env-Dev.proj .

Výběr správných vlastností nasazení

Tato tabulka popisuje účel každé vlastnosti v ukázkovém souboru projektu specifickém pro prostředí , Env-Dev.proj a obsahuje několik pokynů k hodnotám, které byste měli poskytnout.

Název vlastnosti Podrobnosti
MSDeployComputerName Název cílového webového serveru nebo koncového bodu služby. Pokud nasazujete do služby vzdáleného agenta na cílovém webovém serveru, můžete zadat název cílového počítače (například TESTWEB1 nebo TESTWEB1.fabrikam.net), nebo můžete zadat koncový bod vzdáleného agenta (například http://TESTWEB1/MSDEPLOYAGENTSERVICE). Nasazení funguje stejným způsobem v každém případě. Pokud nasazujete na Handler Web Deploy na cílovém webovém serveru, měli byste zadat koncový bod služby a zahrnout název webové stránky IIS jako parametr dotazu (například https://STAGEWEB1:8172/MSDeploy.axd?site=DemoSite).
MSDeployAuth Metoda nasazení webu by se měla použít k ověření ve vzdáleném počítači. Mělo by se nastavit na NTLM nebo Basic. Obvykle použijete protokol NTLM, pokud nasazujete do služby vzdáleného agenta, a Basic, pokud nasazujete do obsluhy nasazení webu. Pokud používáte základní ověřování, musíte také zadat uživatelské jméno a heslo, které má nástroj pro nasazení webu služby IIS (Nasazení webu) použít k provedení nasazení. V tomto příkladu jsou tyto hodnoty poskytovány prostřednictvím MSDeployUsername a MSDeployPassword vlastnosti. Pokud používáte ověřování NTLM, můžete tyto vlastnosti vynechat nebo ponechat prázdné.
MSDeployUsername Pokud používáte základní ověřování, nástroj Nasazení webu použije tento účet na vzdáleném počítači. To by mělo mít tvar DOMÉNA*uživatelské_jméno* (například FABRIKAM\matt). Tato hodnota se používá pouze v případě, že zadáte základní ověřování. Pokud používáte ověřování NTLM, je možné tuto vlastnost vynechat. Pokud je zadaná hodnota, bude ignorována.
MSDeployPassword Pokud používáte základní ověřování, Web Deploy použije toto heslo na vzdáleném počítači. Toto je heslo pro uživatelský účet, který jste zadali ve vlastnosti MSDeployUsername . Tato hodnota se používá pouze v případě, že zadáte základní ověřování. Pokud používáte ověřování NTLM, je možné tuto vlastnost vynechat. Pokud je zadaná hodnota, bude ignorována.
ContactManagerIisPath Cesta služby IIS, na kterou chcete nasadit aplikaci Contact Manager MVC. Měla by to být cesta, která se zobrazí ve Správci služby IIS, ve formuláři [název webu iis]/[název webovéaplikace]. Nezapomeňte, že web služby IIS musí existovat před nasazením aplikace. Pokud jste například vytvořili web služby IIS s názvem DemoSite, můžete pro aplikaci MVC zadat cestu IIS jako DemoSite/ContactManager.
ContactManagerServiceIisPath Cesta služby IIS, kam chcete nasadit WCF službu aplikace Contact Manager. Pokud jste například vytvořili web služby IIS s názvem DemoSite, můžete zadat cestu IIS pro službu WCF jako DemoSite/ContactManagerService.
ContactManagerTargetUrl Adresa URL, na které je služba WCF přístupná. Bude mít podobu [kořenová adresa URL webu iis]/[název aplikace služby]/[koncový bod služby]. Pokud jste například vytvořili web služby IIS na portu 85, adresa URL bude mít formulář http://localhost:85/ContactManagerService/ContactService.svc. Mějte na paměti, že aplikace MVC a služba WCF se nasazují na stejný server. V důsledku toho je tato adresa URL přístupná pouze z počítače, na kterém je nainstalovaná. Z tohoto důvodu je lepší v adrese URL místo názvu počítače nebo hlavičky hostitele použít localhost nebo IP adresu. Pokud použijete název počítače nebo hlavičku hostitele, může bezpečnostní funkce kontroly zpětné smyčky ve službách IIS blokovat adresu URL a vrátit chybu HTTP 401.1 – Neautorizováno.
CmDatabaseConnectionString Připojovací řetězec databázového serveru. Připojovací řetězec určuje přihlašovací údaje, které nástroj VSDBCMD použije ke kontaktování databázového serveru a vytvoření databáze a přihlašovacích údajů, které bude fond aplikací webového serveru používat ke kontaktování databázového serveru a interakci s databází. V podstatě máte dvě možnosti. Můžete zadat Integrated Security=true, v takovém případě se používá integrované ověřování systému Windows: Zdroj dat=TESTDB1; Integrated Security=true V tomto případě bude databáze vytvořena pomocí přihlašovacích údajů uživatele, který spouští spustitelný soubor VSDBCMD, a aplikace bude přistupovat k databázi pomocí identity účtu počítače webového serveru. Případně můžete zadat uživatelské jméno a heslo účtu SQL Serveru. V tomto případě se přihlašovací údaje SQL Serveru používají nástrojem VSDBCMD k vytvoření databáze i fondu aplikací pro interakci s databází: Data Source=TESTDB1; ID uživatele=ASqlUser; Heslo=; Návody v tomto tématu předpokládají, že budete používat integrované ověřování systému Windows.
CmTargetDatabase Název, který chcete dát databázi, kterou vytvoříte na databázovém serveru. Zadaná hodnota se přidá do příkazu VSDBCMD jako parametr. Používá se také k vytvoření úplného připojovacího řetězce, který fond aplikací na webovém serveru může použít k interakci s databází.

Tyto příklady ukazují, jak můžete tyto vlastnosti nakonfigurovat pro konkrétní scénáře nasazení.

Příklad 1 – Nasazení do služby vzdáleného agenta

V tomto příkladu:

  • Nasazujete službu vzdáleného agenta na TESTWEB1.
  • Dáváte pokyn Web Deployu, aby používal ověřování NTLM. Nasazení webu se spustí pomocí přihlašovacích údajů, které jste použili k vyvolání modulu Microsoft Build Engine (MSBuild).
  • K nasazení databáze ContactManager do TESTDB1 používáte integrované ověřování. Databáze se nasadí pomocí přihlašovacích údajů, které jste použili k vyvolání nástroje 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>

Příklad 2 – Nasazení do koncového bodu Web Deploy Handler

V tomto příkladu:

  • Nasazujete do koncového bodu služby Web Deploy Handler na STAGEWEB1.
  • Instruujete Web Deploy, aby používal základní ověřování.
  • Určujete, že Web Deploy by měl provádět operace pod účtem FABRIKAM\stagingdeployer na vzdáleném počítači.
  • K nasazení databáze ContactManager do STAGEDB1 používáte ověřování SQL Serveru.
<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>

Závěr

V tuto chvíli jsou soubory projektu plně nakonfigurované tak, aby se sestavily a nasadily řešení Contact Manageru do jednoho nebo více cílových prostředí.

Pokud chcete tyto soubory projektu použít jako součást jednoho kroku opakovatelného procesu nasazení, musíte spustit soubor Publish.proj pomocí nástroje MSBuild a předat umístění souboru projektu specifického pro prostředí jako parametr. Můžete to udělat různými způsoby: