Domanda

Abbiamo un sito web che pubblica eventi utilizzando NServiceBus. Il sito è distribuito utilizzando msdeploy. Abbiamo anche la NServiceBus.exe che dovrebbe funzionare come un servizio di Windows per iscriversi a questi eventi, e vorremmo implementare quello pure.

C'è un modo di confezionare il servizio, nonché il sito, in modo che possa essere installato come bene? E 'possibile confezionare separatamente in modo da poter distribuire a un altro server?

Eventuali suggerimenti su dove trovare le informazioni su come fare questo sarebbe grande, come possiamo fare distribuzioni automatiche per il sito ora.

È stato utile?

Soluzione

Recentemente ho fatto questo utilizzando MSDeploy, Phantom e InstallUtil.exe

È appena fondamentalmente bisogno di modificare la vostra classe di installazione e elevare i privilegi di servizio WMSVC remoti, se necessario.

link al blog

Altri suggerimenti

Quello che noi ci siamo ritrovati per fare stava creando uno strato 'controllore' che coordina le attività di distribuzione, anche uno che potrebbe usare msdeploy. In sostanza, msdeploy non è il più alto livello di astrazione nel nostro sistema di distribuzione.

Abbiamo scelto di utilizzare MSBuild per coordinare i compiti di elementi che implementano da un 'pacchetto'.

Nel nostro processo di distribuzione, un'applicazione web distribuita con msdeploy è solo un altro elemento di distribuzione, così come è un servizio di Windows.

In tutto divulgazione, abbiamo in realtà non ancora creato attività di distribuzione MSDeploy, anche se va / scenderebbe in bene per quello che abbiamo già creato, come MSBuild sarebbe invocare il msdeploy. Al momento stiamo utilizzando le attività della comunità MSBuild per l'automazione distribuzione webapp, coordinato tramite MSBuild.

E 'possibile leggere un po' di più su come si 'generalizzare' nostre implementazioni tramite un post sul blog ho chiamato " PANDA - imballaggio e distribuzione di automazione ".

Ecco un msdeploy cmd linea che ho usato per sincronizzare un ArchiveDir che viene creato da un post-generazione passo nel mio file Windows Service.proj.

E 'la sincronizzazione dal mio server di build alla mia application server su una rete diversa. Ho passi di build pre e post che avviare e arrestare il servizio sul server remoto. È necessario avvolgere lo script PowerShell in uno script VB a causa di un bug con PowerShell e msdeploy. L'opzione -verbose è molto utile.

Ho anche lo script VBScript e ps1 sotto. Fate attenzione con il sonno VB e il pre e post-timeout MSDeploy.

msdeploy -verb:sync -source:archivedir=\\qa-xxxxx1.qa.lan\deployment\backups\FreddieMacDelivery\FreddieMacDelivery.zip,tempAgent='True',computerName=qa-xxxxx1.qa.lan,userName=QA\xxxxx,password=xxxx,authtype=NTLM,includeAcls='False' -dest:dirpath=\\qa-xxxxxx1.qa.lan\protk\Services\FreddieMacDelivery\1.4.1.test -useCheckSum -verbose -preSync:runCommand="cscript.exe c:\temp\stop_win_svc.vbs" -postSync:runCommand="c:\temp\start_win_svc.vbs",waitInterval=15000,waitAttempts=1

VB script:

Option Explicit
Dim oShell, appCmd,oShellExec
Set oShell = CreateObject("WScript.Shell")

appCmd = "powershell.exe -NoLogo -NoProfile -NonInteractive -ExecutionPolicy Unrestricted -Command ""&c:/temp/Get_Win_SVC.ps1"" "

Set oShellExec = oShell.Exec(appCmd)

WScript.Sleep 1000
oShellExec.StdIn.Close()

lo script PowerShell:

$username = 'QA\xxxxx'
$password = 'xxxxx'
$cred = New-Object System.Management.Automation.PSCredential -ArgumentList @($username,(ConvertTo-SecureString -String $password -AsPlainText -Force))

(Get-WmiObject  -computer qa-xxxx1.qa.lan  -Credential $cred Win32_Service -Filter "Name='ProTeck.FreddieMac.DeliveryService'")


$svc = (Get-WmiObject  -computer qa-xxxxx1.qa.lan  -Credential $cred Win32_Service -Filter "Name='ProTeck.FreddieMac.DeliveryService'") 

Write-Host  $svc

$svc.InvokeMethod("StartService", $null)


(Get-WmiObject  -computer qa-xxxxx1.qa.lan  -Credential $cred Win32_Service -Filter "Name='ProTeck.FreddieMac.DeliveryService'")> c:\temp\win_stat_post.txt
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top