WURFL InFuze Module for IIS: User Guide ======================================= This document will help you install and configure WURFL IIS on Windows Server 2003, 2008, and 2012. WURFL IIS is an IIS ISAPI plugin that adds selected HTTP headers to every request received by IIS Server. Added headers will contain values for the WURFL Static/Virtual Capabilities selected in the configuration file related to the User Agent of the current request. Installing the WURFL InFuze Module for IIS ------------------------------------------ WURFL IIS is distributed as a Windows installer package for 64 bit Windows versions. Once the package is installed, go to your Server Manager -> IIS Manager, select the site you want to add WURFL IIS to -> ISAPI FIlter -> Add : Filter Name : WURFL IIS, Executable :
`C:\Program Files\Scientiamobile\WURFL ISAPI\wurfl-isapi.dll` *__Warning:__ Since version 1.8.3.0: the installation of `libwurfl for Windows 1.8.3.0 or greater` is required and the default installation folder is `C:\Program Files\Scientiamobile\WURFLIsapi\` `libwurfl` is provided in your Customer Vault/FileX* Configuration ------------- Once the plugin is installed, navigate to your installation folder and edit the `wurfl-conf.xml` configuration file to inject the headers that your web application will need. ### Single site configuration example Let's assume our IIS Server hosts a single website **www.mywebsite.com** The `wurfl-conf.xml` configuration file should contain a single `` section whose `site` attribute value is the regex matching the site `FQN`. ```xml wurfl.zip single_lru ux_full_desktop is_tablet is_wireless_device device_os ``` You can insert as many `` tags as you need in your `wurfl-conf.xml` file, with each static capability (or virtual capability) resulting in a new HTTP header. A full list of capabilities can be found [here](https://www.scientiamobile.com/capabilities). ### Multiple sites configuration examples Let's assume our IIS Server hosts two websites **www.firstwebsite.com** and **www.secondwebsite.com**. If we want to use different configurations for each website, the `wurfl-conf.xml` configuration file should contain two `` sections: - one with `site` property value = `www\.firstwebsite\.com` - one with `site` property value = `www\.secondwebsite\.com` ```xml wurfl.zip . . wurfl.zip . . ``` Let's assume our IIS Server hosts websites under `com` TLD and `net` TLD. If we want to use different configurations for each TLD, the `wurfl-conf.xml` configuration file should contain two `` sections: - one with `site` property value = `.*\.com` - one with `site` property value = `.*\.net` ```xml wurfl.zip . . wurfl.zip . . ``` If we want to use the same configurations for each TLD, the `wurfl-conf.xml` configuration file should contain only one `` section: ```xml wurfl.zip . . ``` Configuration Tags details --------------------------
Tag Description Availability
<WurflIISServer> Aggregates the WURFL engines configurations for local IIS Server
Context:`root`
Type:`mandatory`
1.7.0.1
<WurflIIS> Contains the configuration for a subset (WURFL engine) of the web sites hosted by local IIS Server
Type:`mandatory`
Context:``
Attributes:
`name`: a symbolic name for the web sites managed by the nested configuration for logging purposes
`site`: a regex representing web site URLs managed by the nested configuration. WURFL Isapi filter will check the HTTP Request against this regex to determine which WURFL engine will manage the incoming HTTP Request.
1.7.0.1
<WurflRoot> Defines the location (path) of the WURFL data file.
Type:`mandatory`
Context:``
Value:: the full path of the WURFL data file
1.6.4
<WurflUpdater frequency="DAILY"> Allows seamless update of the WURFL Engine with new data downloaded from Scientiamobile.
The tag `` must precede it.
Type:`not mandatory`
Context:``
Value:: the `data url` (taken from your personal Scientiamobile Vault account, choosing between two data file types: `.zip` or `.xml.gz`)
Take care that `` file type and `` `data url` file type match so you may need to change the `` file type accordingly.
Attributes:`frequency` (how often the updater checks for any new WURFL data file to be downloaded and used by the engine) whose value you can choose between `DAILY` and `WEEKLY` (default value is `DAILY`)

In order to let the Updater perform its activities both the `` folder and file must be writable by IIS.
The `wurfl-updater-log.txt` file in WURFL Isapi installation folder will contains details on Updater activity.
1.8.3
<WurflPatch> Adds one or more custom patch files to the WURFL repository.
Type:`not mandatory`
Context:``
Value:: the full path of patch file
1.6.4
<WurflEngineTarget> `This configuration option is deprecated and will be removed in a future release.` 1.6.4
<WurflCache params="100000">single_lru<WurflCache>
or
<WurflCache>null<WurflCache>
In order to increase performance while processing real HTTP traffic, we suggest setting up an `LRU` cache. The `LRU` caching strategy will speed up lookup operations on processed User Agents by keeping them in an LRU map. By default the cache will be set to 30000 entries, which accounts for 7 to 10 MB of additional memory usage. Specific concerns regarding memory usage apart, users are advised to size their cache generously (100,000 or more) to increase performance. For more information, please see [LRU Cache Mechanism](http://en.wikipedia.org/wiki/Cache_algorithms#Least_Recently_Used).
Type:`not mandatory`
Context:``
1.6.4
<WurflRequestCapability> Defines one or more WURFL Static/Virtual Capabilities values to be injected in the Request as HTTP headers.
Type:`not mandatory`
Context:``
1.6.4
<WurflUserAgentPriority> `This configuration option is deprecated and will be removed in a future release.` 1.6.4
<WurflLogHeaderInjection> Logs header injection activity
Type:`not mandatory`
Context:``
Value:`true`/`false` (default value is `false`)
1.6.4
<WurflDoNotProcessUrl> URLs blacklist section: all URLs matching the contained regex will be excluded from wurfl headers injection.
Context:``
1.7.0.1
<WurflProcessUrl> URLs whitelist section: all URLs matching the contained regex will be injected with wurfl headers.
Context:``
1.7.0.1
<WurflUrl> An url to match
Context:`` ``
Value: the regex representing the url
Attributes:`name`: a symbolic name for the URL, for logging purposes
1.7.0.1
------- **© 2024 ScientiaMobile Inc.
All Rights Reserved.** **NOTICE:** All information contained herein is, and remains the property of ScientiaMobile Incorporated and its suppliers, if any. The intellectual and technical concepts contained herein are proprietary to ScientiaMobile Incorporated and its suppliers and may be covered by U.S. and Foreign Patents, patents in process, and are protected by trade secret or copyright law. Dissemination of this information or reproduction of this material is strictly forbidden unless prior written permission is obtained from ScientiaMobile Incorporated.