【问题标题】:Protect IIS folder from being deleted by WebDeploy保护 IIS 文件夹不被 WebDeploy 删除
【发布时间】:2012-11-18 12:13:23
【问题描述】:

我的网络应用程序上有一个文件夹,用于存储用户上传的内容,即个人资料图片之类的东西。

当我使用 WebDeploy 时,有一个“保留额外文件(不删除)”选项,勾选后可确保不删除个人资料图片。

我正在寻找一种方法,以确保即使未勾选,某个文件夹也不会被删除。这样做的原因是我不希望其他开发人员将来意外禁用该功能。或者我。

有什么想法吗?我在这里看到了一些类似的问题,但似乎与我正在使用的 Visual Studio 2010 无关。

【问题讨论】:

  • 你试过排除文件夹吗? msdn.microsoft.com/en-us/library/…我不记得这是否也确保 Web Deploy 不会删除文件夹中的现有文件。
  • 如果将该目录设为虚拟目录会怎样?是否在周三部署时仍将其删除?

标签: asp.net iis webdeploy


【解决方案1】:

(我假设您正在使用带有 Azure SDK 或 Visual Studio 2012 RTM 的 Visual Studio 2010 发布配置文件。如果不是,请在项目根目录中创建一个名为 ProjectName.wpp.targets 的 MSBuild 文件并将内容放入而是)

您可以通过在发布配置文件中设置<SkipExtraFilesOnServer>true</SkipExtraFilesOnServer> 来禁用所有形式的删除(相当于您提到的复选框)。

要跳过特定目录,对此问题的评论意味着您可以使用以下语法:

<ItemGroup>
  <ExcludeFoldersFromDeployment Include="FolderName" />
</ItemGroup>

但我以前从未见过,也没有测试过。否则,您可以指定显式跳过规则。 “FolderName”在这里被跳过 - 请记住 AbsolutePath 是一个正则表达式:

<MsDeploySkipRules Include="SkipFolderName">
  <SkipAction>Delete</SkipAction>
  <ObjectName>dirPath</ObjectName>
  <AbsolutePath>FolderName$</AbsolutePath>
</MsDeploySkipRules>

注意:有些some scenarios 在使用 Visual Studio 时无法使用跳过规则,除非您还将 UseMsDeployExe 设置为 true

【讨论】:

  • 如果我将MsDeploySkipRules 添加到我的发布文件中,它会抱怨Include 属性不是有效属性,如果我删除它我仍然可以发布,但它不遵守规则。
  • MsDeploySkipRules 是一个项目,因此它需要在 ItemGroup 中,而不是在 PropertyGroup 中。
  • Web deployment task failed. (Unrecognized skip directive 'skipaction'. Must be one of the following: "objectName," "keyAttribute," "absolutePath," "xPath," "attributes.&lt;name&gt;."
  • @TheMuffinMan - 您是否正在运行 Visual Studio 2010?您可能需要安装 SP1 + 最新的 Azure SDK
  • 我使用的是 2013 的最新版本,但我目前没有使用 Azure。这是为了部署到我的测试服务器(Amazon EC2)
【解决方案2】:

您可以使用 msdeploy.exe.configsettings 文件在目标计算机上设置特定规则,同一文件夹中还有一个 msdeploy.exe.configsettings.example 文件。该文件位于 %program files%\IIS\Microsoft Web Deploy - 文件夹见Web Deploy Rules

您可以在此处设置 Rules 和 skipDirectives 并启用它们是否为默认设置,以便您获得预期的默认行为。

【讨论】:

  • 好主意!我总是忘记那个配置文件
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-08
  • 1970-01-01
  • 2014-12-16
  • 1970-01-01
  • 1970-01-01
  • 2019-11-18
相关资源
最近更新 更多