#Citrix #Internet Explorer #Enterprise Mode #IE 11 #IE 8
PART 1 | PART 2 | PART 3
Part 1 we discussed Internet Explorer 11 Compatibility Mode settings and the importance of XML and how the right to left style of parsing is similar to DNS.
XML, like DNS, reads right to left (parsed) and greatest to least from a potential impact perspective, although one error at any level can result in an outage. An example about this concept follows, starting with the Universe or .com:
This image above is conceptual and the goal is understanding how the syntax works as it relates to Internet Explorer 11 parsing the file. Everything your working within this universe which is XML and all things related to it such as DNS and FQDN require you to understand the aforementioned concept. XML File parsing begins with <rules version=”XX”>.
In the above example, the Universe is COM
. The Solar System is .mydomain.com in (dot)COM
universe, similar to DNS Name Space without the forward slash. .com
equals .universe for this article.
Keep in mind the above is for demonstration purposes only. The point is that this is read right to left, not left to right. Take note of the syntax. In part two I demonstrate where the smallest mistake can cause an outage.
Note, similar to DNS it reads larger to smaller. Read right to left .com is .universe or the largest piece of the equation. Where this differs greatly from DNS is what can be written to the right of .universe (.com, .gov, .net, .etcetera)
Notice, anything to the right of / (right-slash) reads right to left as well but smaller to larger. Anything right of the slash in XML universe is typically smaller for every slash (/) going right.
In this example, the Universe COM in Solar System MYDOMAIN
is IE 8 Emulation Mode (set to ‘false’) but starting at the far right of virtual directory paths there are exclusion possibilities. This mode allows a virtual directory path to run alternate modes. Although mydomain.com
is set to “false” I can have any combination of virtual directory paths if I parse right to left.
In the image above “mydomain.com
” is excluded from EMIE (Enterprise Mode) but using <path exclude>
set to true on /desktop/forms
allows me to run that virtual directory (path) to the right of FQDN as with IE 11. In this case, I want to exclude “mydomain.com
” and anything to the left of “mydomain.com
” in Enterprise Mode (IE 8 Emulation) except where the path right of “.com” is /desktop/forms
. Here are a few examples;
- Qa.mydomain.com/main = False, IE 8 (Enterprise Mode)
- Qa.mydomain.com/desktop/forms = True, IE 11
In this scenario, recall that IE 11 is the default but .mydomain.com
exists in the file and set to “false
”. Hence, .mydomain.com
is by default to run in IE 8 Emulation mode, and now we have a conflicting request that must be read right to left.
For every domain you must ask a question: Are the number of websites in this domain legacy sites or compatible with IE 11? This may be a question asked by internal developers. If the site is internal, you should have a point of contact for each website. Knowing this information is about how you list the domain initially in the XML file.
The domain space is legacy web code or newer web code. This determines whether or not you set the website to False or True in the EMIE section of the XML file.
If, for example, my-qa.mydomain.com/anything
is all legacy code you want my-qa.mydomain.com
to run in IE 8 emulation mode. This would include anything to the left or right of .mydomain.com. It might be anything.anything.anything.mydomain.com/anything/anything/anything
. A single line for .mydomain.com
set to False alleviates having to add all these entries to the left or right of .mydomain.com.
If the greater is IE 11, then the least complex might be a single line with false or true preceding the domain name.
IE 11 interprets the lines above as run everything to the left of ".mydomain.com"
in IE 8 emulation mode except line 2 "my-qa."
This is also read as anything to the right of "mydomain.com"
such as /anything
to be run in IE 8 emulation mode except /anything in "my-qa.mydomain.com."
XML is parsed right-to-left. Setting “mydomain.com”
to false translates as *.mydomain.com
." I can change this default behavior by setting “anything.mydomain.com
” to "true"
. In this example, “my-qa.mydomain.com”
” will run as IE 11 but “*anythingelse*
is still in Enterprise Mode (IE 8 Emulation).
RULES VERSION AND INCREMENT
Using a centralized “sites.xml”
file might incur a lot of requests if every user in the enclave were to parse that file every single request or FQDN and where “Enter” key is pressed. To alleviate this unnecessary traffic, a numeric value is incremented by “1” with each update. The beginning number is 1 and each increment is synonymous with “new version”. Lines might be added or removed, but the number can only increment and never decrement.
Version 2, increment change
This number must be incremented with each version of the Enterprise Mode site list, letting Internet Explorer know whether the list is new. Approximately 65 seconds after Internet Explorer 11 starts, it compares your site list version to the stored version number. If your file has a higher number, the newer version is loaded.
So, mydomain.com is a separate realm covering a vast space set to IE 8 Emulation Mode where anything to the left or virtual paths to the right now requires an exclusion not
to run as IE Emulation Mode. Document mode provides a way to adjust for other document types using the same XML file. As of this writing, options include; IE 11 Default, IE 8 Emulation Mode, IE 10 Document Mode, IE 9 Document Mode, IE 8 Document Mode, and IE 7 Document Mode. IE 8 Emulation Mode should not be confused with IE 8 Document Mode; there is no relationship between the two.
For more knowledge see the Microsoft publication Fix web compatibility issues using document modes and the Enterprise Mode site list
It is possible to have a domain listed as "true" or "false"
in EMIE (Enterprise Mode) section of the XML file and run domains to the left (thisisleft
.mydomain.com) or to the right (.mydomain.com/thisistotheright
) in different document modes.
Enterprise Mode takes precedence over document modes, so sites that are already included in the Enterprise Mode site list won’t be affected by this update and will continue to load in Enterprise Mode, as usual.
THE XML DESIGN
There are pros and cons to this design. You can limit the exposure to risks of a single file by using redundant web servers behind a load-balanced virtual IP address to host the file. A load balance other IP addresses requires another virtual or physical appliance to assume responsibility for that service. The Virtual IP (or VIP) automatically load balances incoming traffic to two or more web servers providing high-availability. See image below, a VIP in this context is a 4th IP Address where the image below shows a load balancing device hosting a Virtual IP of 10.10.10.5. The IIS servers arranged in a shared services model behind the Virtual IP of 10.10.10.5. The sites.xml file hosted on network attached storage or similar high-availability storage.
Hosting the "sites.xml" file is similar for the majority of implementations. You need a web server, file share and have a few common choices such as whether or not to use a load balancer or what type of storage to use.
Where every project differs is the design of the XML file.
The design of the primary XML
file is the difference between success and failure. There is the hosting of the file and what goes in the file;
understanding the file architecture, how it is parsed, the version number, and syntax is critical.
XML SYNTAX ERRORS
XML files can be created or edited with standard text editors. Like PowerShell and other languages, the syntax is critical. Unlike PowerShell or other languages IE 11 won't show an error message but instead, won't parse the file. Regardless of where you are in the migration plan, the following syntax errors cause an outage. In other words, users type in a website, and it should work. Syntax errors here might cause that website to run in the wrong emulation mode, and users cannot perform their job.
- Extra space or missing space
- Extra “
- Extra /
- Missing /
- Missing < or > or = or “ or [space]
- Missing characters
- Misspelled words
Here is an example of a few mistakes that cause an outage:
- Missing the closing quote (")
- Comma instead of period
This article provides guidance regarding the XML file and how best to structure the file based on the assessment of internal websites to determine by domain whether to use IE 11 native mode or IE 8 emulation mode. The next article discusses the use of "Dos and Donts".
This series pertains to Windows 7 and Server 2008, 2008 R2, 2008 R2 SP1 and Internet Explorer 11. The XML schema changes slightly in Windows 8.1 and higher. At this time, different XML files are necessary for those operating systems.
Does this shared knowledge provide value? If this article has value, please click on "Good Article" button to your right
. Knowing this knowledge is valued by others is motivation to continue sharing.