【问题标题】:Web deploy from multiple computers从多台计算机进行 Web 部署
【发布时间】:2012-10-09 00:55:03
【问题描述】:

我在多台计算机、我的工作和我的家用电脑上处理网站。源代码保存在 git 存储库下。我使用 Web Deploy 将网站发布到公共服务器上的 IIS。一切正常,我可以从两台计算机上发布并且它工作

问题是,当我从一台 PC 部署,然后转到另一台 PC,从 git 获取最新更改,进行更多更改,然后再次部署时,它会重新部署整个网站,而不仅仅是已更改的文件- 如果我从本段的第一句中取出“然后转到另一个,从 git 获取最新更改”步骤,会发生什么情况。

我可以做什么,我可以在我的 git 存储库中包含哪些文件(我排除了所有 packagesbinobj 目录),或者我可以执行哪些额外的配置来解决这个问题?

【问题讨论】:

  • 当您进行更多更改时,听起来文件上的 git 存档位和/或日期正在重置。检查这些设置,并确保您使用的是最新版本的 git。另外,你是通过代理吗?如果有,是什么类型的? Git 使用 ssl 和一些代理删除证书。
  • 看来这就是问题所在。然而,仅仅让 Git 控制文件修改时间(据我所知,如果不使用外部库,这是不可能的)并不够,因为 PC A 和 PC B 甚至可能存在时间差异如果只是几秒钟,就足以将其全部破坏。理想情况下,我想要的是某种外部文件,Web Deploy 使用它来跟踪部署的内容和时间。我还以为以前有这样的文件,可惜现在好像没有了。
  • 同步是否成功完成了多主机差异?确保您不在代理后面,然后我建议从每个主机进行简单同步,但无需更改,以确保它不会同步整个存储库。还建议设置小型测试存储库,看看是否可以复制问题。这个同步错误违背了版本控制的本质。令人不安..
  • 如果上述说明没有帮助,您使用的是哪个版本的 MS Web Deploy? 2012 年 4 月发布的 v3 修复了iis.net/learn/publish/using-web-deploy/…

标签: visual-studio git iis-7.5 microsoft-web-deploy


【解决方案1】:

在您的公共服务器上添加一个 repo,推送到该服务器,然后从那里进行部署。推送将是最小的,git 可以使用 deltas 非常好。

【讨论】:

  • 虽然这当然是一个很好的解决方案,但您实际上是在说“使用另一种部署方法”。当然还有其他项目部署方法,但问题是关于 WebDeploy,我发现它在大多数情况下都非常方便。也并非总是可以远程访问服务器,可以为不具备实施您的建议所需的访问类型的非管理员设置 Web 部署。
  • 我可能遗漏了一些东西,但这对我来说似乎是一个简单的观察:你说 Web Deploy 无法识别来自不同系统的冗余流量,所以我认为没有解决方案,只能接受冗余流量或做您从单个系统进行部署。主服务器似乎是一个显而易见的地方。
猜你喜欢
  • 1970-01-01
  • 2011-10-27
  • 1970-01-01
  • 2012-07-27
  • 1970-01-01
  • 1970-01-01
  • 2020-04-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多