簡體   English   中英

在TFS構建之后通過遠程桌面連接自動化IISRESET

[英]Automating IISRESET via remote desktop connection after a TFS build

我想自動化一個進程,在TFS上成功構建之后調用該進程。 該過程將RDP發送到測試服務器,然后調用該服務器上的C#應用​​程序,並重置該服務器上的IIS。 每個步驟都將返回結果,因此無論是否調用下一步都是基於上一步驟。

實施它有一些障礙。 以下是我想知道的可能性,以及如何編碼。

1) 通過TFS構建調用該過程

Build定義中有一個選項可以調用自動測試。 我假設可以通過將其作為測試來調用該過程。

2) RDP到遠程服務器

我找到了下面的鏈接,這可能是一個解決方案

Process rdcProcess = new Process();
rdcProcess.StartInfo.FileName = Environment.ExpandEnvironmentVariables(@"%SystemRoot%\system32\cmdkey.exe");
rdcProcess.StartInfo.Arguments = "/generic:TERMSRV/192.168.0.217 /user:" + "username" +  " /pass:" + "password";
rdcProcess.Start();

rdcProcess.StartInfo.FileName = Environment.ExpandEnvironmentVariables(@"%SystemRoot%\system32\mstsc.exe");
rdcProcess.StartInfo.Arguments = "/v " + "192.168.0.217"; // ip or name of computer to connect
rdcProcess.Start();

使用指定的用戶名和密碼運行mstsc.exe

自動化遠程桌面連接

3) IISReset

我認為它應該只是在RDP之后調用“ IISRESET ”,但問題是,如何限制運行IISRESET的結果。

可能適合的工具是:

1)Powershell - 我對Powershell了解不多,但如果需要我願意學習

2)C#

我的問題是如何實現它,任何代碼示例和想法將非常感激。

在大多數情況下,您不需要運行iisreset

如果你想升級一個asp.net應用程序,嘗試將app_offline.htm放在應用程序文件夾中,它將停止一個應用程序,應用程序文件將被解鎖

升級應用程序后,它將自動重啟,或者您可以“觸摸”web.config強制重新啟動

您可能更好地使用Lab Build將腳本作為目標計算機環境的一部分運行。 它可以針對該機器運行任何PowerShell以及部署和執行應用程序....

問題:如何捕獲運行IISRESET的結果

我相信老式的方式,希望這就是你要找的東西

c:> IISRESET >> C:\\ temp.log

您可以使用CMD或powershell中的上述內容

在過去,我使用Psexec對遠程服務器運行命令,在那里我們需要控制該命令結果的流量,我們只需將控制台輸出到共享文件夾並檢查我們的成功標志。

我不確定TFS是否可以以這種方式運行命令,但我們在hudson / jenkins上實現了它。

這不會直接回答您的問題,但可能會提供更好的前進方法

示例:psexec.exe \\ remoteserver“iisreset> h:\\ iisreset.log”

然后使用您的成功標志對iisreset.log運行grep或類似操作,作為運行下一步的條件。

在這里檢查我的答案有點相關: 答案

如果在構建服務器上運行TFSBuild服務的用戶在測試服務器上擁有足夠的權限,那么您可以使用psexec或powershell遠程運行命令。 閱讀以下鏈接:

PSEXEC

PowerShell遠程命令

沒有內置的活動/流程可以幫助您在TFS構建工作流中的遠程計算機上運行腳本。

第1步是確定如何在遠程計算機上運行腳本,如上所述,您可以使用PSEXEC或Powershell(盡管在遠程計算機上運行PowerShell可能會稍微復雜一些)。

Step2,編寫實際腳本來完成工作,停止服務,安裝MSI等。

步驟3,編輯當前的構建定義 - 創建新的自定義活動或在構建定義中使用InvokeProcess活動來調用您在步驟2中創建的腳本.InvokeProcess Activity

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM