51Degrees-Logo

Kentico and 51Degrees Device Detection

51Degrees

7/10/2018 2:41 PM

Industry Development

There is risk that device detection takes up too much server memory and we wanted to have a way to turn it off QUICKLY in our production environment if it happened. In Kentico 10 there was a web.config value CMSEnable51D to do this, but not in Kentico 11. Per Kentico Support "if you have integrated this functionality through a NuGet package, you can remove it by uninstalling the 51Degrees.mobi-web NuGet package." So, it’s not a simple config change that could be made on the fly. Since we have a Kentico web application project, we would have to deploy new code to turn it off.

Kentico11 no longer integrates 51degrees into its settings pages. And, we only want to use FATAL level logging.

  1. No easy way to tell “is the premium data file loaded” - turn on logging to INFO level and examine it, or attempt to use a macro only available in the premium data editing.
  2. No easy way to determine what is the version and date of the 51Degrees-PremiumV3_1.dat file being used. The only way I found is to turn on the INFO level 51degrees logging and then the log file will show what version the file is. (is there some other way to do this?) 2018-05-22T20:57:37.4428610Z - 7780 - Info - Creating dataset from 'FiftyOne.Foundation' version '3.2.4.4' 2018-05-22T20:57:37.5276631Z - 7780 - Info - Created provider from version '3.1.0.0' format 'PremiumV3' data published on '2018-03-21 00:00:00Z' in master file

Kentico11 requires integrating 51Degrees though nuget packages. After doing this, if you want to use the “premium data file” it’s not available through nuget and we needed to download from 51degrees website and add it into our project source code.

After installing the nuget packages, there is a 51degrees.config file at 2 different locations, one in the “packages” locations and one at the root of the CMS Project. The one in the CMS project is the one to edit that gets used by Kentico.