【问题标题】:Sitecore Item and media urls with IPs带有 IP 的 Sitecore 项目和媒体 URL
【发布时间】:2016-07-08 23:01:16
【问题描述】:

我们在发布管道中遇到了一个关于 Sitecore 的奇怪问题。我们有一些逻辑在发布管道期间运行,以将数据写入另一个系统。进入新系统的数据属性之一是内容和媒体项目的 URL。

项目的网址是http://www.example.com/section/abc,但媒体项目的网址是http://123.456.789.012/~/media/media.ashx。这在我们的 staging 和 dev 环境中运行良好,其中正确的 url 通过。但在生产中,IP 被发送用于媒体项目。据我所知,暂存配置和生产配置没有明显差异。

对可能发生的事情有任何想法吗?任何帮助表示赞赏。

【问题讨论】:

标签: hyperlink sitecore


【解决方案1】:

检查"Media.MediaLinkServerUrl" 设置的值是多少。

默认为空:

<setting name="Media.MediaLinkServerUrl" value="" />

据我所知,如果:

  1. "Media.MediaLinkServerUrl" 值未设置
  2. AlwaysIncludeServerUrl 选项被使用
  3. 并且没有 HttpContext.Current(当您在发布管道时确实如此)

如果 1. 2. 和 3. 为真,Sitecore 会生成指向媒体项目的链接,其中包含在应用程序池回收后点击该站点的第一个主机名或 IP 地址。

这意味着如果您重新启动生产服务器,然后使用本地 IP 地址访问它,以确保它在放回负载平衡器(或者它可能是使用 IP 地址调用服务器的 LB)之前已启动并运行,Sitecore将使用该 IP 地址而不是漂亮的主机名生成所有媒体项目 url。

我认为它适用于开发环境和临时环境,因为您总是使用最终主机名来访问它们。

【讨论】:

  • 这确实很有意义。但有一件事还不清楚。我们在 LB 后面的所有环境中都有 CM。那么为什么只有生产导致这个问题。无论如何,我已经在代码中指定了 MediaLinkServerUrl,看看这是否会有所作为。
  • 该设置在生产中有效。但我们不会更改 web.config 中的设置。我们将更改此设置作为媒体 URL 选项的一部分。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多