Кажется, я обнаружил ошибку в том, как ASP обрабатывает условные комментарии IE (или html-комментарии в целом).
Теоретически он вообще не должен их обрабатывать, поскольку они предназначены для клиентской стороны.
На практике ..
<!--[if IE 6]>
<!--include virtual="emptyfile.asp"-->
<![endif]-->
вернется
<![endif]>
Да, вы правильно прочитали.. это удалит открытие комментария, включая все, что есть в файле, и сохранит закрывающий тег комментария..
Это, конечно, испортит html и, конечно, заставит IE выполняться для всех...
есть очевидный обходной путь, такой как использование server.execute
для включения вашего файла вместо директивы include, которая будет работать, как и ожидалось.
Скорее всего, он путает окончание -->
директивы include с началом <!--
html-комментария. Но он вообще не должен заморачиваться с html-комментариями..
Есть ли известная причина, по которой это происходит таким образом? или это просто баг?