Je wilt jouw webapplicatie, zoals Umbraco 8, graag publiceren via de command-line? Wij bieden je deze mogelijkheid via onze Web Deploy-service. In dit FAQ-artikel laten we je zien hoe je dit kunt doen met msdeploy.exe.

Dit voorbeeld gaat ervan uit dat je Umbraco 8 hebt gedownload en de VS Code installation hebt gevolgd. Je hebt dan je Umbraco-website lokaal klaarstaan in bijvoorbeeld de map C:\Users\Jan\dev\site. Hoe krijg je die nou gepubliceerd? Simpel, met msdeploy.exe (onderdeel van Web Deploy).

Let wel, Umbraco met een SQL Server Compact database wordt niet ondersteund, gebruik bij voorkeur Microsoft SQL Server. Zorg ervoor dat je tenminste Web Deploy 3.6 hebt geïnstalleerd, of Visual Studio 2019 / 2017. Web Deploy wordt meegeïnstalleerd met Visual Studio.

Wil je nog even teruglezen wat Web Deploy Publish ook alweer is en waarom het handig is?

ASP.NET webapplicatie deployment met Web Deploy en PowerShell

Je kunt eenvoudig je ASP.NET of ASP.NET Core webapplicatie publiceren met msdeploy.exe.

Voor Windows gebruikers is PowerShell helemaal hip, dus gebruiken we dat in ons voorbeeld ook: Using WebDeploy in a CI/CD pipeline with PowerShell.

Nadat onze klantenservice een FTP-gebruiker van jouw site heeft geautoriseerd voor Web Deploy toegang kun je de volgende drie variabelen maken (example.nl als voorbeeld):

$gebruiker = "VEVIDA\example.nl"
$website = "example.nl"
$wachtwoord = "my-super-secret passphrase"

Let op: zolang je dit niet in een script opslaat ben je de variabelen kwijt als je je PowerShell-sessie hebt afgesloten.

Hierna kun je de msdeploy.exe parameters opvragen met "C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" /? en je volledige commando samenstellen.

Het volledige commando kan bijvoorbeeld zijn:

&"C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" `
	-verb:sync
	-source:iisApp="C:\Users\Jan\dev\site" 
	-allowUntrusted
	-dest:iisApp="${website}",
	ComputerName="https://www.${website}:8172/msdeploy.axd?site=${website}",
	UserName="${gebruiker}",
	Password="${password}",
	AuthType='Basic'
	-Verbose

Let op: het commando hierboven moet op één (1) regel achterelkaar staan.

Wat uitleg over de commando-opties (met een * erachter is verplicht):

  • -verb:sync synchroniseer destination met source
  • -source:iisApp de source (bronlocatie) op de computer, waarbij de te gebruiken provider iisApp is. Eventueel kun je hier contentPath gebruiken (*)
  • -allowUntrusted accepteer niet vertrouwde SSL-servercertificaten (*)
  • -dest:iisApp de destination (doellocatie op de webserver), waarbij de te gebruiken provider iisApp is. Eventueel kun je hier contentPath gebruiken. Ook ComputerName, UserName, Password en AuthType moeten gespecificeerd zijn (*)
  • -Verbose geef extra informatie weer (uitgebreide registratie)

Publiceren naar een subfolder

Als je je webapplicatie wilt publiceren naar een subfolder, dan kun je die simpelweg opgeven als destination: -dest:iisap="${website}"/mijn-map,. Publiceer je een ASP.NET of ASP.NET Core webapplicatie? Vergeet dan niet de map aan te merken als applicatie in MyVevida.

Webapplicatie downloaden met msdeploy.exe / Web Deploy

Je kunt ook je webapplicatie downloaden met msdeploy.exe, bijvoorbeeld als back-up. Wissel gewoon -source en -dest locaties om:

&"C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe"
	-verb:sync
	-source:iisApp="${website}/cms",
	ComputerName="https://www.${website}:8172/msdeploy.axd?site=${website}",
	UserName="${gebruiker}",
	Password="${wachtwoord}",
	AuthType='Basic'
	-Verbose
	-allowUntrusted
	-dest:iisapp="C:\Users\Jan\dev\back-up\UmbracoCms.8.4.0"

Tips voor het gebruik van Web Deploy en msdeploy.exe

Gebruik -includeAcls="False" om geen bestand- en directorypermissies proberen te wijzigen. Rechten moeten worden gezet via MyVevida. Je kunt de /stats uitsluiten van verwijderen met de parameter -skip:skipaction='Delete',objectname='dirPath',absolutepath='\\stats'. Dit vertelt msdeploy.exe dat de actie “delete” voor de map \\stats overgeslagen moet worden. Je gebruikt twee backlashes omdat een backslash geëscapet moet worden met nog één.

Standaard wordt de externe locatie op de webserver gesynchroniseerd met de situatie zoals die lokaal is. Heb jij geen map genaamd “stats” in de te publiceren applicatie, dan wordt die van de server verwijderd.

Het is mogelijk dat je meerdere versies van msdeploy.exe op je computer hebt staan. Gebruik bijvoorbeeld Get-ItemProperty in PowerShell om de versie te identificeren:

(Get-ItemProperty "C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe").VersionInfo.FileVersion
(Get-ItemProperty "C:\Program Files (x86)\IIS\Microsoft Web Deploy V3\msdeploy.exe").VersionInfo.FileVersion

Onze klantenservice geeft helaas geen ondersteuning op het gebruik van msdeploy.exe via de command-line. Maar wil je graag tips en handigheidjes (of eigenaardigheden) aan ons doorgeven, aarzel dan niet om contact op te nemen.

Wat vind jij van dit antwoord?

Voor vragen kun je met ons , mailen of bellen (050 211 0100)

Bedankt voor je feedback!

Er is een fout opgetreden. Probeer het later opnieuw.