我正在使用Sitecore 7,我在我们的网站上配置了Sitecore GeoIP模块(Sitecore IP Geolocation Service Client 1.2 rev.150602.zip)。 Sitecore IP地理定位服务正在我们网站的App Center上运行。
当我尝试将其功能与个性化一起使用时,似乎无效。 我使用演示文稿详细信息为页面组件创建了以下条件 - >个性化
但是当我从给定国家访问该网站时,该项目仍然存在于页面上(需要隐藏)。
我使用TestIp.aspx页面测试了GeoIp模块,它正确地跟踪了ip数据。
有人可以就此提出建议。 感谢。
这实际上有效。 MaxMind服务有一个ip缓存机制。 当缓存ip时,我们从sitecore客户端所做的更改不会在特定时间内激活。
我们可以做些更改或跳过此缓存机制的配置更改吗?
感谢。
答案 0 :(得分:2)
Sitecore的GeoIP / MaxMind模块无法实时解析GeoIP信息。它在批处理后台进程中执行此操作 - 出于性能原因,毫无疑问。
我可以向您展示一种更改此方法的方法,但我不建议您在任何真实网站上进行此操作,因为对MaxMind服务的调用可能需要一段时间,并会阻止您的页面加载,直到完成为止。
您需要尽早向httpRequest管道添加处理器,以强制查找客户端IP。然后将缓存它以用于后续页面加载。
Sitecore.Analytics.Lookups.LookupManager.GetInformationByIp(string ip)
ip参数将是您的请求主持人。
但正如我所说,我真的不建议这样做,除非你的网站重量很轻。
我建议您使用MaxMind免费提供的GeoLite数据库,而不是这个。然后,您将在本地数据库(而不是Web服务)中执行查找 - 有关如何完成此操作的示例,请查看此处:
http://sitecoresnippets.blogspot.dk/2011/12/sitecore-geoip-country-resolving-jump.html#.Vhdui_l_NBc