Asp.net 让Jenkins在部署时为新的GIT分支自动配置IIS应用程序

Asp.net 让Jenkins在部署时为新的GIT分支自动配置IIS应用程序,asp.net,iis,jenkins,jenkins-pipeline,Asp.net,Iis,Jenkins,Jenkins Pipeline,我已将Jenkins build作业设置为带有Jenkins文件的多分支管道项目。它会自动扫描git中要构建的分支,并将结果部署到IIS虚拟路径的子目录中。这对于前端代码非常有效 但是,对于.Net项目,有必要将每个目录配置为IIS中的“应用程序” 有没有办法让我的构建脚本自动创建“IIS应用程序”并为任何新发现的分支设置应用程序池?将以下内容添加到您的文件中: stage("Deploy web application") { steps { ... virtualPath = '

我已将Jenkins build作业设置为带有
Jenkins文件的多分支管道项目。它会自动扫描git中要构建的分支,并将结果部署到IIS虚拟路径的子目录中。这对于前端代码非常有效

但是,对于.Net项目,有必要将每个目录配置为IIS中的“应用程序”


有没有办法让我的构建脚本自动创建“IIS应用程序”并为任何新发现的分支设置应用程序池?

将以下内容添加到您的文件中:

stage("Deploy web application") {
  steps {
  ...
  virtualPath = '/myapp/' + env.BRANCH_NAME
  physicalPath = 'C:\myapp\\'+env.BRANCH_NAME
  addIisApplication('appName', 'appPoolName', virtualPath, physicalPath)
  }
}

def addIisApplication(appName, appPoolName, virtualPath, physicalPath) {
  iisAppCmd("add app /site.name:" + appName + " /path:" + virtualPath +" /physicalpath:"+physicalPath)
  iisAppCmd("set app "+appName + virtualPath+" /applicationpool:" + appPoolName)
}

def iisAppCmd(args) {
  bat 'C:\\Windows\\System32\\inetsrv\\appcmd.exe ' + args + " & exit 0" // ignore already exists error
}
如果需要在其他服务器上创建IIS应用程序,请通过调用
appcmd.exe

现在,每当您创建一个新的功能分支并推送它时,Jenkins都可以将其构建并部署到您的IIS服务器上