我们有一个网站,出版活动使用NServiceBus.该网站是部署使用msdeploy.我们还有NServiceBus.exe 这应该运行为windows服务订阅这些事件,我们希望部署。

是否有任何方式包装服务以及网站,以便使它可以装吗?这可能包分开,以便我们可以将它部署到另一个服务器?

任何技巧在哪里找到的信息,关于如何做到这将是巨大的,因为我们可以做到自动部署的网站。

有帮助吗?

解决方案

我最近有没有这种使用MSDeploy,幻象,installUtil.exe

你只是基本上需要修改安装类和提升你的远程wmsvc服务的特权,如果需要的。

链接到博客

其他提示

我们结束了做什么是创造一个“控制器”层坐标部署任务,甚至是一个可以使用msdeploy。从本质上讲,msdeploy不是抽象的在我们的部署系统的最高水平。

我们选择使用的MSBuild从“包”坐标部署项目的那些任务。

在我们的部署过程中,部署msdeploy一个Web应用程序是另一个部署项目,就像是一个Windows服务。

在所有的披露,我们还没有真正建立msdeploy部署任务还没有,但应该/将很好地顺道我们已经创建,为的MSBuild将调用msdeploy。我们目前使用的MSBuild社区任务的web应用部署自动化,通过协调的MSBuild

您可以读一点了解我们如何通过一个博客帖子我也被称为“广义”我们部署“的 PANDA - 打包和部署自动化的”。

下面是一个msdeploy CMD线我用来同步是从在我Windows Service.proj文件生成后的步骤中创建的archivedir。

据从我生成服务器同步到我的应用程序服务器在不同的网络上。我有一个启动和远程服务器上停止服务前和后生成步骤。中,必须用VB脚本的PowerShell脚本由于使用PowerShell和msdeploy的错误。所述-verbose选项是非常有益的。

我也有下面的VBScript和PS1脚本。小心用VB睡眠和前置和后置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脚本:

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()

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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top