Sitecore最佳实践

6 sitecore

我们正在建立第一次迁移到Sitecore.我们有多个多语言网站,其内容存储在具有LCID的数据库字段中.用户控件使数据库调用显示不同的语言内容.我们正在将我们的内容迁移到Sitecore项目,并希望利用Sitecore API从我们的用户控件中获取内容以构建数据结构.

我想知道如何为Sitecore开发构建Visual Studio项目,以便使用现有的VS解决方案.我们是否将Sitecore .dll和配置复制到所有解决方案,或共享一个Sitecore安装?

另外,如何在生产中安装所需的文件以支持在IIS中作为单独的网站存在的多个站点?我们是否必须在/sitecore每个网站的单独文件夹中包含所有必需的.dll和配置文件的副本,或者我们共享一个文件夹,每个站点中的虚拟文件夹指向同一个物理/sitecore文件夹?

Jas*_*son 6

根据我的经验,使用Sitecore的多个站点的"1个IIS网站下的所有内容"仅在您没有以下内容时才有效:

  1. 每个站点有不同的SSL证书:IIS每个IP地址/端口组合只允许一个SSL证书,IIS中每个网站只允许一个.我们有4种不同的通配符SSL证书(针对4个不同的基本域),因此我们必须至少拥有4个独立的IIS网站.
  2. 每个站点的不同虚拟目录:如果您希望虚拟目录在一个网站上可用而不在另一个网站上,则必须在IIS中具有不同的网站.

如果您具有这些要求中的任何一个,则它们必须是IIS中的不同网站(或者必须在IIS之外处理要求).

至于你如何设置它,有一点要记住,我们被告知在服务器上多次安装Sitecore需要不同的/多个许可证.

因此,对于我们来说,我们必须与IIS中的多个站点共享相同的安装,因为我们有这两个要求(并且只有一个许可证).我们让所有网站共享相同的Sitecore安装(共享所有文件,包括DLL和web.config).对此的回顾是:

  • 任何配置或DLL更改导致所有网站重新启动
  • 每个网站都有自己的应用程序域(因此它会增加内存需求,并且不共享内存缓存)
  • 该应用程序域基本上是一个单独的进程,因此任何维护或计划操作(即清除媒体缓存)都在每个网站上运行并访问相同的文件.这可能会导致性能和并发问题.我们不得不从外部计划的任务开始执行这些过程,并且仅在我们的编辑网站上启动以防止冲突.
  • 由于我们只有一个配置文件,因此我们无法关闭内容交付网站的编辑功能.这意味着我们必须使用IIS的功能来阻止在内容交付网站上进行编辑.
  • 我们不得不把它当作sitecore的多服务器安装来对待,这意味着我们必须设置一个stager来清除发布时的缓存.我们使用了共享源库中的stager.


Ale*_*oot 4

一般来说,我们建议在 1 个 IIS 网站下运行所有​​内容。这节省了很多配置和部署问题。除此之外,从性能角度来说,使用多个网站并不是必需的。

项目的设置可以非常直接地完成。只需确保构建目标设置为 Sitecore 安装的 /Website/bin-folder 即可。如果是这样,您就可以重复使用任何东西。您可以将 Sitecore.Kernel 链接为 Visual Studio 中的解决方案项。

总的来说,我认为您应该咨询当地的 Sitecore 办公室,与您一起考虑设置此解决方案。由于我们在此类迁移方面拥有丰富的经验,因此我们很乐意为您提供正确的建议并讨论所有选项。