使用MS WebDeploy处理本地用户内容

时间:2014-01-10 09:58:57

标签: webdeploy

使用Microsoft WebDeploy和Team City将修补程序部署到站点时,本地用户生成内容的最佳实践方法是什么?

使用Troy Hunt描述的部署过程:

http://www.troyhunt.com/2010/11/you-deploying-it-wrong-teamcity_26.html

当对站点进行更改时,WebDeploy代理会更新站点,包括删除不再需要的旧文件 - 这很棒。但是,如果站点包含用户生成的数据(例如,用户可以上载存储为磁盘上的文件的图像,或者用户可以更新页面内容文件的简单CMS),那么防止这些数据的最佳做法是什么?部署代理正在删除哪些文件?

某些文件夹是否有忽略标志? 用户文件是否应存储在已部署网站的根目录之外(这是否存在安全风险)?

1 个答案:

答案 0 :(得分:1)

您基本上需要使用MSDeploy的跳过规则。这将告诉MSDeploy忽略某些文件,文件夹或子文件夹等。

这取决于您实现这些语法的位置。但是您有以下选择:

  • 如果您使用发布配置文件通过VS.Net发布,则可以在此处包含跳过规则(我采用了这种方法并且看到它工作正常)。这个问题应该指向正确的方向 - MSDeploy skip rules when using MSBuild PublishProfile with Visual Studio 2012

  • 如果你使用的是vs.net网络解决方案(网站/网络应用程序),我后来发现你也可以在web.config中实现跳过规则。虽然以下文章有点陈旧,但这种方法仍然可行 - How to write skip and replace rules for MSDeploy(我没有使用或测试过这种方法)

  • 最后但并非最不重要的是,您可以在命令行上使用MSDeploy跳过规则。因此,假设您直接执行msdeply(而不是通过msbuild),您需要附加一个skip参数以及您需要的相关属性。更多信息可以在以下位置找到:Demystifying MSDeploy skip rulesWeb Deploy Operation Settings(查找跳过命令参考,大约在页面下方的2/3)(使用MSBuild的发布配置文件最终会为您调用,我已经通过使用上面的第一种方法看到它在行动中。)

希望有所帮助!