繁体   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