Sitecore 相对较新。我已经在这里和 dev.sitecore.net 上非常彻底地搜索了这个问题,但没有看到这些主题重叠的地方......
我们为营销人员制作了一个网络表单。我们使用内容交付服务器,因此通过此表单上传的文件保存上传到“web”的图像文件,这是唯一的位置。
问题来了,如果我们从主文件夹(或任何父文件夹)发布该文件夹,因为上传的项目不在主文件夹中,那么所有内容都会被清除,我们需要保持这些文件夹的前进。发布限制,使文件夹不可发布,根据我的理解(并且已经看到测试)意味着同样的事情......完整的站点发布(我们希望能够做到)将清除这些文件,因为这些文件不是“t 在文件夹中,并且丢失,或者文件夹未发布,这也会删除它们。
处理此类数据的最佳方法是什么?我想要一个简单的解决方案,例如能够简单地阻止发布接触该文件夹,但不将其从网络中删除......否则,有没有办法调整该文件上传以超出媒体库?截至目前,如果我在表单设计器中选择文件上传字段,我只能选择媒体库文件夹中可以保存它的位置...如果我们可以在另一个数据库中选择一个位置,那就太好了?有没有一种 sitecore 方法可以做到这一点,而不是劫持整个过程并通过 c# 后端重写它?如果这是最好的方法,那么从哪里开始挖掘可以捕获该过程的好地方?
最佳答案
问题不在于用户生成的内容,而在于 WFFM 模块的配置。在 CD 服务器上安装 WFFM 时,您需要配置 remoteWfmService
连接字符串以指向 CM 服务器上的 WFFM 远程服务。这确保了所有操作都在 CM 服务器上运行,因此上传的任何文件或生成的内容都在 master
数据库中完成。
任何内容的发布(用户生成的或其他方式)都将照常发布到 CD 服务器/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
连接字符串,则可以将其删除。
您还需要确保您的保存操作
没有选中客户端操作
复选框,否则该操作将在CD 服务器,而不是 CM 服务器。
您可以在 Webforms for Marketers Reference 的多服务器环境部分(第 37 页)找到更多详细信息。 .
关于c# - 如何在 Sitecore 中限制发布而不删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39979183/