8

任何人都可以确认(最好带有文档链接)是否在文件同步之前完整上传了 MSDeploy 包,还是在 msdeploy.exe 和 msdeploy.axd 之间发生同步(只上传修改过的文件)?

或者,换一种说法,如果我有一个 1GB 包 zip,其中仅包含 1MB 的更改文件,msdeploy 会将整个 1GB 包上传到 MsDeploy.axd 并在服务器上执行同步,或者它只会上传 1MB 的更改的文件?

4

3 回答 3

3

该文档是否足够正式,足以让您相信您观察到的行为是确定性的?

http://www.iis.net/learn/publish/using-web-deploy/introduction-to-web-deploy

“Web Deploy 与 FTP 相比如何?”部分,第 1 点:

Web 部署比 FTP 快。Web 部署不会为每个操作发出不同的命令。相反,它会在同步开始时进行比较,并且只传输更改。

于 2012-09-16T22:13:40.777 回答
1

这是微软员工对类似问题的回答:http ://forums.asp.net/post/4361026.aspx

此外,这是一个非常有用的文章,详细说明了包的组装过程:http: //blog.winhost.com/using-msdeploy-to-publish-your-site/

于 2012-09-15T18:01:15.710 回答
1

由于很难让 MSDeploy 通过代理运行,因此我通过简单地使用一个大文件 (750MB) 使该过程更加明显。

对于代理服务 ( http://localhost:80/MsDeployAgentService),我可以确认它不会上传整个包。如果我从服务器(本地主机)中删除文件,部署需要大约 25 秒。一旦文件已经存在,部署几乎是即时的。鉴于我的机器规格,当时它无法将 750mb 传输到内存中(更不用说通过 HTTP 传输了)。

更新我也可以在部署到远程(尽管相同的网络)MsDeploy.axd服务时确认相同的行为。初始部署时间为 50 秒,下一次部署时间小于 1 秒。

IIS 团队的更新 2 Kristina Olson 在她的评论中证实了这一点:

Web Deploy 分两部分进行增量同步,因此在第一部分中它仅发送有关包中文件内容的元数据以确定哪些文件实际需要更新,因此在第二部分中只有那些增量更新文件通过线路发送。基本上每个文件的元数据(如名称、大小、写入时间)都是通过网络发送的,但实际文件内容不是,除非文件需要更新

于 2012-09-16T12:07:29.333 回答