如何在不删除 Sitecore 的情况下限制发布

How to restrict publishing without deleting in Sitecore

Sitecore 相对较新。我已经在这里和 dev.sitecore.net 上彻底搜索了这个主题,但没有看到这些主题重叠的地方...

我们有一个用于营销人员的 Web 表单正在制作中。我们使用内容传送服务器,因此通过此表单上传的文件保存上传到 "web" 的图像文件,这是唯一的位置。

问题来了,如果我们从 master(或任何父文件夹)发布那个文件夹,因为上传的项目不在 master 中,所有的东西都会被清除,我们需要继续维护这些。发布限制,使文件夹不可发布,根据我的理解(并且已经看到测试)意味着同样的事情......完整的网站发布(我们希望能够做到)将清除这些文件,因为这些文件不是' t 在文件夹中,并且丢失,或者文件夹未发布,这也会删除它们。

今后处理此类数据的最佳方式是什么?我喜欢一个简单的解决方案,比如能够简单地防止发布接触该文件夹,但不能将其从网络中删除......否则,有没有办法调整该文件上传到媒体库之外?截至目前,如果我 select 表单设计器中的文件上传字段,我只能 select 在媒体库文件夹中我可以保存它的地方......如果我们可以 select 一个位置可能在另一个数据库中?有没有一种 sitecore 方法可以做到这一点,而不是劫持整个过程并通过 c# 后端重写它?如果这是最好的方法,那么从哪里开始挖掘可以捕获该过程的好地方是什么?

您的问题没有一个好的答案。实际上你的问题是如何存储User generated content

网上已有大量关于它的文章和讨论。

检查例如https://www.google.com/search?q=user+generated+content+sitecore

您可能会从文章中看到,有很多方法可以用来实现您想要的。您只需要 select 一个最符合您的期望和要求的。

问题不是用户生成的内容,而是 WFFM 模块的配置。在 CD 服务器上安装 WFFM 时,您需要配置 remoteWfmService 连接字符串以指向 CM 服务器上的 WFFM 远程服务。这确保任何操作都在 CM 服务器上 运行,因此任何上传的文件或生成的内容都在 master 数据库中完成。

任何发布的内容(用户生成的或其他方式)随后都会像往常一样发布到 CD server/web 数据库中。这还有一个好处,如果您希望删除某些内容(例如用户评论),您可以从 CM 服务器执行此操作并再次发布。

在以下连接字符串配置远程服务:

<add name="remoteWfmService" connectionString="url=http://[masterserver]/sitecore%20modules/shell/Web%20Forms%20for%20Marketers/Staging/WfmService.asmx;user=[domain\username];password=[password];timeout=60000" />

如果您定义了 wfm 连接字符串,则可以删除它。

您还需要确保您的 Save Actions 没有勾选 Client Action 复选框,否则该操作将 运行 CD 服务器,而不是 CM 服务器。

您可以在 Webforms for Marketers Reference.

多服务器环境 部分(第 37 页)中找到更多详细信息