Dela via


Välja rätt metod för webbdistribution

av Jason Lee

När du arbetar med IIS Web Deployment Tool (Web Deploy) 2.0 eller senare finns det tre huvudsakliga metoder som du kan använda för att överföra dina paketerade webbprogram till en webbserver. Du kan antingen:

  • Distribuera programmet från en fjärrplats genom att rikta in dig på Web Deployment Agent-tjänsten (även känd som "fjärragenten") på målservern.
  • Distribuera programmet från en fjärrplats med hjälp av Web Deploy On Demand (kallas även "temporär agent").
  • Distribuera programmet från en fjärrplats genom att rikta in dig på IIS Web Deploy Handler på målservern.
  • Distribuera programmet genom att manuellt kopiera webbpaketet till målservern och importera det via IIS-hanteraren.

Hur du konfigurerar målwebbservrarna beror på vilken distributionsmetod du vill använda. Det här avsnittet hjälper dig att avgöra vilken metod för distribution som är rätt för dig.

Den här tabellen visar de viktigaste fördelarna och nackdelarna med varje distributionsmetod, tillsammans med de scenarier som vanligtvis passar varje metod.

Tillvägagångssätt Fördelar Nackdelar Typiska scenarier
Agent på distans Det är lätt att ställa in. Den är lämplig för regelbundna uppdateringar av webbapplikationer och innehåll. Användaren måste vara administratör på målservern. Användaren kan inte ange alternativa autentiseringsuppgifter. Utvecklingsmiljöer. Testmiljöer.
Tillfällig agent Du behöver inte installera Web Deploy på måldatorn. Den senaste versionen av Web Deploy används automatiskt. Användaren måste vara administratör på målservern. Användaren kan inte ange alternativa autentiseringsuppgifter. Utvecklingsmiljöer. Testmiljöer.
Hanterare för webbdistribution Användare som inte är administratörer kan distribuera innehåll. Den är lämplig för regelbundna uppdateringar av webbapplikationer och innehåll. Det är mycket mer komplicerat att ställa in. Miljöer för iscensättning. Produktionsmiljöer på intranätet. Värdbaserade miljöer.
Distribution offline Det är väldigt enkelt att ställa in. Den är lämplig för isolerade miljöer. Serveradministratören måste kopiera och importera webbpaketet manuellt varje gång. Produktionsmiljöer som är riktade mot Internet. Isolerade nätverksmiljöer.

Använda Remote Agent

När du installerar Web Deploy med standardinställningarna på en målserver installeras och startas tjänsten Web Deployment Agent ("fjärragenten") automatiskt. Som standard exponerar fjärragenten en HTTP-slutpunkt på den här adressen:

http://[server]/MSDEPLOYAGENTSERVICE

Anmärkning

Du kan ersätta [server] med maskinnamnet på din webbserver, en IP-adress för din webbserver eller ett värdnamn som matchar din webbserver.

Serveradministratörer kan distribuera webbpaket från en fjärrplats, till exempel en utvecklardator eller en byggserver, genom att ange den här slutpunktsadressen. Anta till exempel att Matt Hink på Fabrikam, Inc. har skapat webbprogramprojektet ContactManager.Mvc på sin utvecklardator. Byggprocessen genererar ett webbpaket tillsammans med en .deploy.cmd fil som innehåller de Web Deploy-kommandon som krävs för att installera paketet. Om Matt är serveradministratör på den TESTWEB1 servern kan han distribuera webbprogrammet till testwebbservern genom att köra det här kommandot på sin utvecklardator:

ContactManager.Mvc.deploy.cmd /y /m:http://TESTWEB1/MSDEPLOYAGENTSERVICE a/:NTLM

I själva verket kan den körbara webbdistributionen härleda slutpunktsadressen för fjärragenten om du anger datornamnet, så Matt behöver bara skriva detta:

ContactManager.Mvc.deploy.cmd /y /m:TESTWEB1 /a:NTLM

Anmärkning

Mer information om kommandoradssyntax och .deploy.cmd filer i Web Deploy finns i How to: Install a Deployment Package Using the deploy.cmd File (Så här installerar du ett distributionspaket med hjälp av -filen).

Fjärragenten erbjuder ett enkelt sätt att distribuera innehåll från en fjärrplats, och den här metoden kan fungera bra med ett klick eller automatiserad distribution. Den användare som kör distributionskommandot måste dock också vara antingen domänadministratör eller medlem i den lokala administratörsgruppen på målservern. Dessutom stöder fjärragenten inte grundläggande autentisering, så du kan inte skicka alternativa autentiseringsuppgifter på kommandoraden.

Fjärragenten är en användbar metod för distribution i utvecklings- eller testscenarier, där det inte är ovanligt att utvecklare har fullständig administratörskontroll över en testservermiljö, och program vanligtvis återskapas och distribueras om mycket ofta. Den här metoden är dock vanligtvis mindre acceptabel för mellanlagrings- eller produktionsmiljöer.

Ett exempel från slutpunkt till slutpunkt på ett scenario som använder fjärragentmetoden finns i Scenario: Konfigurera en testmiljö för webbdistribution.

Använda den temporära agenten

Den temporära agentens metod för distribution liknar fjärragentens metod. Till skillnad från fjärragentmetoden behöver du dock inte installera Web Deploy på målwebbservern. När du utför distributionen installerar Web Deploy i stället en tillfällig version av tjänsten för webbdistributionsagenten på målservern och använder den för att distribuera ditt innehåll till IIS. När distributionen är klar tas alla temporära filer bort.

Om du vill använda providerinställningen för temporär agent lägger du till flaggan /g i distributionskommandot:

ContactManager.Mvc.deploy.cmd /y /m:TESTWEB1 /g:true

Anmärkning

Du kan inte använda temporär agenten om tjänsten för webbdistributionsagenten är installerad på måldatorn, även om tjänsten inte körs.

Fördelen med den här metoden är att du inte behöver underhålla installationer av Web Deploy på målservrarna. Dessutom behöver du inte se till att käll- och måldatorerna kör samma version av Web Deploy. Den här metoden lider dock av samma principiella begränsningar som fjärragentmetoden, nämligen att du måste vara lokal administratör på målservern för att kunna distribuera innehåll, och endast NTLM-autentisering stöds. Metoden med temporära agenter kräver också mycket mer initial konfiguration av målmiljön.

Mer information om hur du använder temporär agent finns i How to: Install a Deployment Package Using the deploy.cmd File and Web Deploy On Demand (Så här installerar du ett distributionspaket med hjälp av File and Web Deploy On Demand.

Använda Web Deploy Handler

Från och med IIS 7 erbjuder Web Deploy en alternativ distributionsmetod via IIS Web Deploy Handler. Web Deploy Handler är nära integrerad med IIS Web Management Service (WMSvc), som är utformad för att göra det möjligt för användare att hantera IIS-webbplatser från fjärrplatser.

Som standard exponerar fjärragenten en HTTP-slutpunkt på den här adressen:

https://[server]:8172/MSDeploy.axd

Anmärkning

Du kan ersätta [server] med maskinnamnet på din webbserver, en IP-adress för din webbserver eller ett värdnamn som matchar din webbserver.

Den stora fördelen med Web Deploy Handler jämfört med fjärragenten och temporära agenten är att du kan konfigurera IIS så att användare som inte är administratörer kan distribuera program och innehåll till specifika IIS-webbplatser. Web Deploy Handler har också stöd för grundläggande autentisering, så du kan ange alternativa autentiseringsuppgifter som parametrar i dina Web Deploy-kommandon. Den stora nackdelen är att Web Deploy Handler till en början är mycket mer komplicerad att installera och konfigurera.

När det gäller användare som inte är administratörer tillåter webbhanteringstjänsten (WMSvc) endast att användaren ansluter till IIS med hjälp av en anslutning på platsnivå i stället för en anslutning på servernivå. Om du vill komma åt en viss plats kan du inkludera en platsspecifik frågesträng i slutpunktsadressen:

https://[server]:8172/MSDeploy.axd?site=DemoSite

Förslag Anta till exempel att en byggprocess är konfigurerad för att automatiskt distribuera ett webbprogram till en mellanlagringsmiljö efter varje lyckad version. Om du använde fjärragentmetoden skulle du behöva göra byggprocessidentiteten till en administratör på målservrarna. Om du däremot använder metoden Web Deploy Handler kan du ge en användare som inte är administratör – FABRIKAM\stagingdeployer i det här fallet – behörighet till en specifik IIS-webbplats, och byggprocessen kan tillhandahålla dessa autentiseringsuppgifter för att distribuera webbpaketet. Observera att följande exempel använder %ContactManagerPublishPassword%, som hämtar lösenordsvärdet från en miljövariabel. För att skriptet ska kunna köras %ContactManagerPublishPassword% måste variabeln definieras med rätt värde.

msdeploy.exe 
  -source:package='…\ContactManager.Mvc.zip' 
  -dest:auto,
        computerName='https://STAGEWEB1:8172/MSDeploy.axd?site=DemoSite',
        userName='FABRIKAM\stagingdeployer',
        password=,
        authtype='Basic', 
  -verb:sync 
  -setParamFile:"…\ContactManager.Mvc.SetParameters.xml"   
  -allowUntrusted

Anmärkning

Mer information om kommandoradsåtgärder och syntax för webbdistribution finns i Kommandoradsreferens för webbdistribution. Mer information om hur du använder .deploy.cmd-filen finns i How to: Install a Deployment Package Using the deploy.cmd File (Så här installerar du ett distributionspaket med hjälp av -filen).

Web Deploy Handler är en användbar metod för distribution i mellanlagringsmiljöer, värdmiljöer och intranätbaserade produktionsmiljöer, där fjärråtkomst till servern är tillgänglig men administratörsautentiseringsuppgifter inte är det.

Ett exempel från slutpunkt till slutpunkt på ett scenario som använder metoden Web Deploy Handler finns i Scenario: Konfigurera en mellanlagringsmiljö för webbdistribution.

Använda offlinedistribution

I vissa fall är det inte möjligt eller praktiskt att distribuera program och innehåll till en IIS-webbplats från en fjärrplats. Käll- och måldatorerna kan till exempel finnas i isolerade nätverk eller nätverkssegment, eller så kanske brandväggsprincipen inte tillåter fjärråtkomst.

I scenarier som dessa kan du fortfarande använda paketerings- och publiceringsfunktionerna i Web Deploy. Du kan helt enkelt inte använda dem från en avlägsen plats. I stället måste en administratör på målservern kopiera webbpaketet till servern och importera det via IIS-hanteraren.

I stället måste en administratör på målservern kopiera webbpaketet till servern och importera det via IIS-hanteraren.

Offlinedistributionsmetoden är vanligtvis användbar i produktionsmiljöer som är riktade mot Internet, där servrar i ett perimeternätverk kan ha begränsad anslutning till datorer i det interna nätverket.

Ett exempel från slutpunkt till slutpunkt på ett scenario som använder offlinedistribution finns i Scenario: Konfigurera en produktionsmiljö för webbdistribution.

Ytterligare läsning

Mer information om kommandoradsåtgärder och syntax för webbdistribution finns i Kommandoradsreferens för webbdistribution. Mer information om hur du använder .deploy.cmd-filen finns i How to: Install a Deployment Package Using the deploy.cmd File (Så här installerar du ett distributionspaket med hjälp av -filen).

Mer allmän information om de olika sätt på vilka du kan distribuera webbpaket från en fjärrdator finns i Använda webbdistribution via fjärranslutning. Mer information om hur du använder Web Deploy On Demand finns i Web Deploy On Demand.