使用 Jenkins 将 .Net 应用程序自动部署到本地计算机 IIS
Posted
技术标签:
【中文标题】使用 Jenkins 将 .Net 应用程序自动部署到本地计算机 IIS【英文标题】:Auto deploy .Net application to Local machine IIS using Jenkins 【发布时间】:2018-09-03 05:07:35 【问题描述】:我正在尝试构建一个 .NET 应用程序并将其部署到我的本地计算机 IIS。我正在使用 Jenkins 进行构建和部署。
我的要求是 Jenkins 应该使用 MSBuild.exe 构建应用程序并将发布配置文件部署到 localhost IIS。
现在我能够成功构建代码,还能够通过将发布配置文件复制粘贴到 localhost IIS 站点路径手动部署到 localhost IIS。
我不想手动将发布配置文件复制粘贴到本地 IIS,但它应该由 Jenkins 自动完成。构建完成后,它应该将发布配置文件放在所需的 localhost IIS 路径中。为了实现这一点,我在 Jenkins 中运行给定的 Windows 批处理命令。
"C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" -verb=sync -source:package="C:\Users\robin.j\.jenkins\workspace\DotNetMVCTFS\JenkinsPOC\obj\Release\Package\JenkinsPOC.zip" -dest:auto,computerName=http://172.27.113.81:7575/msdeploy.asd?site=MvcJenkinsAutoDeploy,username=username=deploy\robin.j,password=*,authType=basic -setParam:"IIS Web Application Name"="MvcJenkinsAutoDeploy" -allowUntrusted=true
现在问题出在每次成功构建时,我在将应用程序部署到 localhost IIS 时都会收到以下错误。
构建成功。 0 个警告 0 错误
经过时间 00:00:08.83 [DotNetMVCTFS] $ cmd /c call C:\Users\robin.j\AppData\Local\Temp\jenkins8482033175218488444.bat
C:\Users\robin.j.jenkins\workspace\DotNetMVCTFS>"C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" -verb=sync -source:package="C:\Users \robin.j.jenkins\workspace\DotNetMVCTFS\JenkinsPOC\obj\Release\Package\JenkinsPOC.zip" -dest:auto,computerName=http://172.27.113.81:7575/msdeploy.asd?site=MvcJenkinsAutoDeploy,username=deploy\robin.j,password=#### -setParam:"IIS Web应用程序名称"="MvcJenkinsAutoDeploy" -allowUntrusted=true 信息:使用 ID '0b4c591b-19f6-4ec2-bcac-d3f77279eec4' 连接到远程服务器。 错误代码:ERROR_DESTINATION_INVALID 更多信息:无法连接到远程计算机(“http”)。确保远程计算机名称正确并且您能够连接到该计算机。了解更多信息:http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_DESTINATION_INVALID。 错误:无法解析远程名称:'http' 错误计数:1。
我的本地机器 IIS 站点正在 http://172.27.113.81:7575 上运行
请建议我知道这里有什么问题。
【问题讨论】:
请以文字而非图片的形式发布代码、日志和错误。 您需要确保您遵循ERROR_DESTINATION_NOT_REACHABLE指南中定义的所有步骤。 【参考方案1】:"C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" -verb=sync -source:package="C:\Users\robin.j.jenkins\workspace\DotNetMVCTFS\JenkinsPOC\obj\ Release\Package\JenkinsPOC.zip" -dest:auto -setParam:"IIS Web Application Name"="Default Web Site" -allowUntrusted=true
上面的批处理命令有效!!发布 web 部署包时,无需为本地指定目标服务器名称。
【讨论】:
以上是关于使用 Jenkins 将 .Net 应用程序自动部署到本地计算机 IIS的主要内容,如果未能解决你的问题,请参考以下文章
[jenkins 2]让jenkins来自动帮我们布属.net项目