繁体   English   中英

保护IIS文件夹不被WebDeploy删除

[英]Protect IIS folder from being deleted by WebDeploy

我的Web应用程序上有一个文件夹,用于存储用户上传的内容(即个人资料图片)。

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

我正在寻找的是一种确保即使未选中某个文件夹也可以安全删除的方法。 原因是我不希望其他开发人员将来意外禁用该功能。 还是我。

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

(我假设您正在使用带有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>

注意:某些情况下 ,除非您将UseMsDeployExe设置为true否则在使用Visual Studio时跳过规则不起作用。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM