Asp.net mvc 在防火墙后面的服务器上部署Asp.NETMVC应用程序的策略

Asp.net mvc 在防火墙后面的服务器上部署Asp.NETMVC应用程序的策略,asp.net-mvc,firewall,webdeploy,continuous-deployment,Asp.net Mvc,Firewall,Webdeploy,Continuous Deployment,我们的一个客户绝对坚持使用自己的服务器,但拒绝为自动WebDeploy打开IP端口(不要问为什么和多大的企业)。通常,我们会让TeamCity随时安装WebDeploy软件包。但这次不是-( 我们已经研究了Octopus部署,希望在他们的服务器上安装一个触手,让它轮询我们的服务器,但Octopus似乎并没有这样工作 我们正在考虑,我们将不得不编写某种服务,以轮询新版本的软件,如果可用,则进行部署。但这似乎需要大量工作。我想知道这是否已经存在,我们可以购买此系统 对于只能启动连接但不能接受连接的服

我们的一个客户绝对坚持使用自己的服务器,但拒绝为自动WebDeploy打开IP端口(不要问为什么和多大的企业)。通常,我们会让TeamCity随时安装WebDeploy软件包。但这次不是-(

我们已经研究了Octopus部署,希望在他们的服务器上安装一个触手,让它轮询我们的服务器,但Octopus似乎并没有这样工作

我们正在考虑,我们将不得不编写某种服务,以轮询新版本的软件,如果可用,则进行部署。但这似乎需要大量工作。我想知道这是否已经存在,我们可以购买此系统


对于只能启动连接但不能接受连接的服务器,有哪些方法可以进行自动部署?

为什么不使用后台智能传输服务(BITS)安装“更新程序Windows服务”要下载,就像数十亿台windows PC和服务器一样?

八达通部署应该可以工作。它支持轮询模式


请在此处阅读更多信息:

编写PowerShell脚本以下载和部署软件包应该非常简单:

$wc=new-object system.net.webclient
$wc.UseDefaultCredentials = $true
$wc.downloadfile("your_url","your_file")
msdeploy.exe -verb:sync -source:package=<your_file> -dest:metakey=lm/w3svc/1 > DWSpackage6.log
$wc=new object system.net.webclient
$wc.UseDefaultCredentials=$true
$wc.downloadfile(“您的url”、“您的文件”)
msdeploy.exe-verb:sync-source:package=-dest:metakey=lm/w3svc/1>DWSpackage6.log
我省略了检查新版本的代码。假设您有另一个URL来检索最新版本号,这也很简单


测试脚本后,只需使用计划任务从客户端服务器重复运行脚本。

如果可以在其服务器上安装TeamViewer,则可以使用其VPN功能执行任何操作。但是,您必须使用TeamViewer手动连接,启用VPN,然后才能进行WebDeploy。不知道这是否符合您的要求“自动部署”场景(我猜您可能没有被授权首先安装TeamViewer)


我想其他VPN解决方案也可以工作,只要连接是从他们这边启动的。开发一个打开连接的脚本比一个完整的部署工具更简单吗?

我建议签出,它使用在目标服务器上运行的部署代理来拉入部署包。我上个月我一直在用它,到目前为止我对它很满意

我认为,如果您有多个环境(例如,测试、验收和生产),您希望以几乎相同的方式部署到这些环境,并且可能希望不同的人批准每个阶段,那么您将从MS版本管理中获得最大的收益。 我写了几篇关于MS Release Management的博客文章,这些文章应该说明如何使用MS Release Management。
您甚至可以将MS Release Management与TFS集成,以便TFS构建自动导致部署到环境

如果您只有要释放的生产环境,并且您不希望MS发布管理提供的所有额外功能,您也可以考虑使用PosithBar DSC(期望的状态配置)。 默认情况下,它使用“推送”模式,但也可以在中运行,使用webservice或文件共享从中提取部署包(即mof文件)


--编辑:我刚刚读了你关于持续交付的评论,我绝对建议你首先尝试MS Release Management,特别是如果你已经有了。

连接到这个循环有多容易?以前从未使用过,不知道它是如何工作的。有更多信息吗?这就是你的意思:对于BITS?是的,尽管使用了BITS不是解决方案所必需的,它只是为更新配置后台下载的一种很好的方法。对更新进行Windows服务轮询是拉式部署更新的一种非常常见的模式。因此,您建议构建一个进行部署的Windows服务?这正是我们想要避免的。好的,公平点。我寻找我确信这是不可能的,甚至在八达通论坛上找到了答案说触手从不投票。这似乎是一个解决方案!抱歉,无法将悬赏分成两个答案,所以你得到了悬赏,@Astrotrain得到了接受的答案。Bo答案同样有用!是和否。脚本只是解决方案的一部分。另一部分是要有一个基础设施,从哪里下载,在哪里保存最新版本号,如何保护连接,维护等。总的来说,这是一个相当大的工作,我们希望避免这离自动化部署相去甚远t、 目前,我们必须进行TeamViewer会话,这需要大量的时间和协作。部署只需按一个按钮即可完成。好的,感谢您澄清“自动”的含义:-)在这种情况下,工具是否需要帮助?您是否可以一直打开VPN,或者这会破坏他们的安全要求?(免责声明:我自己没有尝试过这个工具)我们没有VPN(公司很大,记住!)请快速了解我们的目标。持续交付是制作软件的好方法。这是另一篇关于CD的好文章,看起来非常有趣。唯一的问题是,它看起来像是在MS Cloud中托管的。但我们谈论的是“大企业”,当他们听到“云”这个词时"他们开始感到不适,并开始从他们的嘴里冒泡沫。因此,不幸的是,这个解决方案不会飞起来。我肯定会在其他项目中检查这些选项,但这次将不得不使用章鱼。好吧,它可以与云结合使用,但它肯定不必如此-事实上,对Azure的支持仅在今年才添加我相信是一年。在我们公司里,所有的事情都是在我们的前提下进行的,包括