从八达通到2017年TFS的迁移-发布ASP.NET网站

从八达通到2017年TFS的迁移-发布ASP.NET网站,asp.net,iis,tfs,visual-studio-2017,octopus-deploy,Asp.net,Iis,Tfs,Visual Studio 2017,Octopus Deploy,我们目前使用Octopus Deploy将网站推送到Windows Server 2012上托管的IIS服务器 我们希望放弃八达通,转而使用我们的内部TFS 2017内置发布系统。我们已经准备好发布工件(网站二进制文件和内容)的构建定义 有了八达通,我们在所有服务器上都安装了触手 Octopus中定义的传统发布流程如下: 设置IIS(Powershell脚本用于为站点配置应用程序池,将虚拟目录映射到绝对路径) 部署nuget包(包包含网站二进制文件和脚本)-将包含网站的包解压缩到关联虚拟目录的物

我们目前使用Octopus Deploy将网站推送到Windows Server 2012上托管的IIS服务器

我们希望放弃八达通,转而使用我们的内部TFS 2017内置发布系统。我们已经准备好发布工件(网站二进制文件和内容)的构建定义

有了八达通,我们在所有服务器上都安装了触手

Octopus中定义的传统发布流程如下:

  • 设置IIS(Powershell脚本用于为站点配置应用程序池,将虚拟目录映射到绝对路径)
  • 部署nuget包(包包含网站二进制文件和脚本)-将包含网站的包解压缩到关联虚拟目录的物理路径
  • 启用Windows身份验证(调用Set-WebConfiguration属性的单行powershell脚本)
  • 禁用Anon身份验证(再次禁用powershell。)
  • 我对八达通流程中使用的Powershell数量不感兴趣,希望在TFS发布定义中尽量减少Powershell

    我的问题是:微软推荐的将ASP.NET网站(普通MVC项目,而不是.NET核心)部署到CI环境中的服务器的方法是什么?是否可以同时配置站点身份验证

    注意: 我查看了OOB IIS发布WinRM部署任务,我担心它们可能需要比我们的基础架构团队更多的时间(配置防火墙等)

    我们在生成服务器上安装了Visual Studio 2017

    蒂亚, 斯科特

    使用这些任务可能是最好、最简单的方法。您可以找到一些关于如何配置的指导

    您需要具备的基本要素包括:

    • 确保在目标服务器上配置了WinRM,并且您的代理可以连接到它们
    • 通过在编译项目时添加这些msbuild参数来打包网站
      /p:DeployOnBuild=true/p:WebPublishMethod=Package/p:PackageAsSingleFile=true/p:SkipinValidConfiguration=true/p:PackageLocation=$(Build.ArtifactStagingDirectory)
      • 使用这些任务可能是最好、最简单的方法。您可以找到一些关于如何配置的指导

        您需要具备的基本要素包括:

        • 确保在目标服务器上配置了WinRM,并且您的代理可以连接到它们
        • 通过在编译项目时添加这些msbuild参数来打包网站
          /p:DeployOnBuild=true/p:WebPublishMethod=Package/p:PackageAsSingleFile=true/p:SkipinValidConfiguration=true/p:PackageLocation=$(Build.ArtifactStagingDirectory)

        根据您的描述,您正在IIS上托管的网站上部署

        首先,通过TFS构建,您可以使用一些msbuild参数,例如
        /p:DeployOnBuild=True/p:skipinValidConfiguration=True/p:WebPublishMethod=Package/p:PackageLocation=$(build.ArtifactStagingDirectory)/p:packageAssingFile=True
        来生成包

        然后在发布定义中使用task-将Web部署包复制到IIS服务器。最后使用-部署包。在生成和发布代理上运行的此任务将打开到每个IIS服务器的WinRM连接,以远程运行Powershell脚本,以便部署Web部署包

        有关更多详细信息/分步教程,您可以参考以下教程,甚至有些是web app的示例:


        根据您的描述,您正在IIS上托管的网站上部署

        首先,通过TFS构建,您可以使用一些msbuild参数,例如
        /p:DeployOnBuild=True/p:skipinValidConfiguration=True/p:WebPublishMethod=Package/p:PackageLocation=$(build.ArtifactStagingDirectory)/p:packageAssingFile=True
        来生成包

        然后在发布定义中使用task-将Web部署包复制到IIS服务器。最后使用-部署包。在生成和发布代理上运行的此任务将打开到每个IIS服务器的WinRM连接,以远程运行Powershell脚本,以便部署Web部署包

        有关更多详细信息/分步教程,您可以参考以下教程,甚至有些是web app的示例:


        八达通设置有问题吗?你为什么打算放弃它?嗨,我们使用的是一个旧版本的八达通,TFS 2017发布定义完全可以满足我们的需要。八达通设置有什么问题吗?你为什么打算放弃它?嗨,我们使用的是一个旧版本的八达通,TFS 2017发布定义完全可以完成我们需要做的事情。Patrick已经将此传递给基础架构团队进行评估。感谢您的帮助。Patrick已将此信息传递给基础架构团队进行评估。谢谢你的帮助。