Глядя на код для Sitecore.Analytics.dll через ILSpy, Tracker.CurrentVisit.Ip возвращает свойство IP в строке данных аналитики для текущего сеанса. Я подозреваю, что это массив байтов, взятый из данных HTTP-запроса. Tracker.CurrentVisit.GeoIp возвращает строку базы данных аналитики для поиска GeoIP для текущего сеанса. Это объект типа VisitorDataSet.GeoIpsRow.
Возможно, вы видите пустые данные из-за проблем с конфигурацией или лицензированием службы GeoIP, но в вашем вопросе недостаточно информации, чтобы я мог об этом сказать. Однако при правильной настройке этой службы у меня уже была потенциально похожая проблема, так что, возможно, это поможет:
Вы не указываете, с какой версией Sitecore/DMS вы работаете. Но когда-то с DMS для v6.5/6.6 я столкнулся с некоторыми проблемами с поиском GeoIP, потому что они выполнялись асинхронно.
Когда DMS создает новую запись для посещения, она инициирует поиск GeoIP в фоновом режиме — параллельно с обслуживанием страниц, запрашиваемых пользователем. Вы не знаете, когда он завершится успешно и вернет данные, и свойства GeoIP в объекте Tracker не будут правильно заполнены, пока это не произойдет. Поэтому, если вы пытаетесь написать код, в котором вы принимаете географические решения во время первых нескольких запросов пользователя на страницу, они могут работать неправильно.
Я думаю (хотя я не проверял это), что вы можете использовать свойство Tracker.CurrentVisit.HasGeoIpData, чтобы проверить, завершен ли асинхронный поиск.
Если у вас есть сценарий, когда вам нужно знать данные GeoIP во время первого запроса пользователя, то я не думаю, что стандартный сервис поиска будет вам полезен. Вместо этого вы можете использовать альтернативный инструмент в памяти. Я думаю, что в последний раз, когда моей компании нужно было сделать что-то подобное, мы использовали некоторый собственный код, основанный на этом сообщении в блоге: http://sitecoresnippets.blogspot.co.uk/2011/12/sitecore-geoip.-country-resolving-jump.html
Тем не менее, используя этот подход, вы жертвуете точностью ради скорости. Но с другой стороны, вы не платите за каждый поиск...
person
JermDavis
schedule
29.04.2014