سؤال

لدينا موقع على شبكة الانترنت التي تنشر الأحداث باستخدام NServiceBus.الموقع هو نشر باستخدام msdeploy.لدينا أيضا NServiceBus.exe والتي ينبغي أن تشغيل ويندوز الخدمة للاشتراك في هذه الأحداث, و نود أن نشر ذلك أيضا.

هل هناك أي طريقة أن حزمة الخدمة وكذلك الموقع, بحيث يمكن تثبيته ؟ هل من الممكن أن حزمة على حدة حتى نتمكن من نشرها إلى ملقم آخر?

أي نصائح حول مكان العثور على معلومات حول كيفية القيام بذلك من شأنه أن يكون كبيرا ، كما يمكننا أن نفعل الآلي نشر على الموقع الآن.

هل كانت مفيدة؟

المحلول

لقد فعلت هذا مؤخرًا باستخدام MSDeploy و Phantom و installUtil.exe

تحتاج فقط إلى تعديل فئة التثبيت ورفع امتيازات خدمة WMSVC عن بُعد إذا لزم الأمر.

رابط إلى المدونة

نصائح أخرى

ما أنهى به هو خلق 'المراقب' الطبقة التي تنسق نشر المهام ، حتى تلك التي يمكن أن تستخدم msdeploy.أساسا ، msdeploy ليست أعلى مستوى من التجريد في نظام النشر.

اخترنا لاستخدام MSBuild لتنسيق المهام نشر عناصر من 'حزمة'.

في عملية نشر, تطبيق ويب المنشورة مع msdeploy مجرد نشر هذا البند ، مثلما هو خدمة ويندوز.

في كل الإفصاح ، ليس لدينا في الواقع خلق msdeploy مهام النشر بعد ، على الرغم من أنه ينبغي/سينخفض بشكل رائع إلى ما قد خلق ، MSBuild أن تحتج msdeploy.نحن نستخدم حاليا MSBuild المجتمع المهام webapp النشر الآلي منسقة عبر MSBuild.

يمكنك قراءة المزيد حول كيف يمكننا 'المعمم' لدينا النشر عبر بلوق وظيفة لم ودعا "الباندا - التعبئة والتغليف و النشر الآلي".

فيما يلي خط MSDeploy CMD الذي استخدمته لمزامنه إلى مؤشر أرشفة تم إنشاؤه من خطوة ما بعد البناء في بلدي Windows Service.proj ملف.

يتم مزامنتها من خادم البناء الخاص بي إلى خادم التطبيق الخاص بي على شبكة مختلفة. لديّ خطوات بناء مسبقًا وبعدها تبدأ الخدمات على الخادم البعيد وتوقفها. يجب عليك لف البرنامج النصي PowerShell في برنامج نصي VB بسبب خطأ مع 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