具有IP

时间:2016-07-08 14:41:20

标签: hyperlink sitecore

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

项目的网址为http://www.example.com/section/abc,但媒体项目的网址为http://123.456.789.012/~/media/media.ashx。这适用于我们的舞台和开发环境,正确的网址经过。但在生产中,IP正在发送给媒体项目。我可以说,在分期和生产配置上没有明显的差异。

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

1 个答案:

答案 0 :(得分:5)

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

默认情况下为空:

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

根据我的记忆,如果:

  1. "Media.MediaLinkServerUrl"未设置值
  2. 并使用AlwaysIncludeServerUrl选项
  3. 并且没有HttpContext.Current(当您在发布管道时这是真的)
  4. 如果1. 2.和3.为真,则Sitecore会生成指向媒体项目的链接,其中第一个主机名或IP地址是在应用程序池被回收后被点击的。

    这意味着如果您重新启动生产服务器,然后使用本地IP地址命中它,只是为了确保它已经启动并运行,然后再将其放回负载均衡器(或者可能是使用IP地址调用服务器的LB),Sitecore将使用该IP地址生成所有媒体项目URL而不是好的主机名。

    我认为它在dev和staging环境中都有效,因为你总是用最终的主机名命中它们。