我正在使用 Sitecore GeoIp 服务来获取用户所在国家/地区。当我第一次加载页面时,它返回国家=“N/A”。但是当我重新加载页面时,它会返回正确的国家/地区。
我正在使用以下代码来获取国家/地区。
var ipAddress = x.x.x.x;
var geoIpOptions = new GeoIpOptions
{
Ip = ipAddress,
MillisecondsTimeout = 1000,
Id = GeoIpManager.IpHashProvider.ComputeGuid(ipaddress)
};
var geoIpResult = GeoIpManager.GetGeoIpData(geoIpOptions);
string country = geoIpResult.GeoIpData.Country;
如果我在首次加载时缺少某些内容以获取正确的国家/地区,请告诉我。
谢谢, 阿洛克...
Sitecore 不会等到从 GeoIP 服务获取信息,以免响应时间较长。为了强制它等待第一个请求,您可以安装此知识库文章中提到的软件包之一:https://kb.sitecore.net/articles/320734
我已经在生产实现中对此进行了测试,效果很好。