c# - 如何在 Sitecore 中限制发布而不删除

标签 c# sitecore publishing sitecore7.2 web-forms-for-marketers

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/

相关文章:

c# - 过滤级联 CheckedListBox 并保留项目的检查状态

c# - 银光异步

asp.net - 如何检索 Sitecore 超链接?

azure - 将 Web 应用程序发布到 IIS,同时在解决方案中具有 Azure Web 角色

android - 我是否需要为我的所有 Android 应用程序使用相同的证书?

c# - 在旋转 Windows Phone 期间防止图像剪切

c# - 从数字列表中获取所有可能的组合

templates - 无法从 sitecore 中删除模板。出现错误 "The template is used by at least one item"?

logging - 如何使用 Sitecore 修复项目别名的错误日志记录?

android - 将 Google Play 商店中的应用程序限制在特定国家/地区是否也会限制公开测试版访问权限?