IE7 запрашивает msxml3.dll элемент управления ActiveX при попытке отобразить диаграммы SVG - PullRequest
1 голос
/ 03 августа 2009

Мы унаследовали новый продукт, который сейчас поддерживаем. Это веб-приложение, которое отображает диаграммы с использованием SVG.

На моей машине работает отлично. Он загружает и показывает графики SVG с помощью Adobe SVG Viewer 3.0. Находясь на клиентском компьютере, диаграммы SVG не загружаются.

Я заметил, что веб-приложение запрашивает элемент управления MSXML3 ActiveX во время загрузки страницы. Даже если вы позволите упомянутому элементу управления ActiveX работать, диаграммы SVG не появятся.

Я проверил на своем компьютере (Инструменты-> Управление надстройками-> Включить или отключить надстройки), и он даже не использует MSXML3.DLL. Единственным активным дополнением является Adobe SVG Viewer 3.0.

Обе машины используют IE7, и обе используют одни и те же "наборы данных".

Какие здесь могут быть возможные проблемы?

Спасибо!

Ответы [ 3 ]

2 голосов
/ 03 августа 2009

Msxml3 встроен во все ОС XP. Однако иногда вам может потребоваться более высокая версия (скажем, Sp10 поставляется с Vista). Максимальный SP, который вы можете скачать - SP7. Все остальные доступны только через Центр обновления Windows.

Вы можете использовать ссылку, предоставленную Хлоей: http://www.microsoft.com/downloads/details.aspx?familyid=28494391-052B-42FF-9674-F752BDCA9582&displaylang=en, чтобы получить MSXML 3.

Насколько мне известно, MSXML 6 НЕ будет достаточно для приложения, которому требуется MSXML 3.

Также вы можете использовать средство обхода зависимостей (доступно здесь ), чтобы проверить, что dll требуется приложению ActiveX.

2 голосов
/ 04 августа 2009

На компьютере клиента установлена ​​Visual Studio 2005.

Adobe SVG Viewer и Visual Studio 2005 ненавидят друг друга, как описано в этой статье базы знаний. http://support.microsoft.com/kb/916442

Мы встраиваем SVG-диаграмму так:

<embed src="PaintSVG?id=12345" type="image/svg+xml"></embed>

Когда у вас установлен VS2005, он «связывает MIME-тип application / xml с расширением имени файла .aspx», поэтому теперь IE думает, что вы внедряете файл «aspx» и когда обнаруживает, что этот файл «aspx» XML-документ, он попытается загрузить его как таковой (объясняет, почему он запрашивает элемент управления MSXML3 ActiveX).

В качестве обходного пути нам нужно «обмануть» IE, что мы фактически внедряем файл SVG, добавив следующие параметры в конце URL:

&Dummy=SVG-VS2005-WorkAround.svg

Вот так:

<embed src="PaintSVG?id=12345&Dummy=SVG-VS2005-WorkAround.svg" type="image/svg+xml"></embed>
1 голос
/ 03 августа 2009

Просто догадка, но попробуйте установить это
Microsoft XML Parser (MSXML) 3.0 с пакетом обновления 7 (SP7)
http://www.microsoft.com/downloads/details.aspx?familyid=28494391-052B-42FF-9674-F752BDCA9582&displaylang=en

Или (казалось бы) более новая версия этой
Microsoft Core XML Services (MSXML) 6.0
http://www.microsoft.com/downloads/details.aspx?familyid=993c0bcf-3bcf-4009-be21-27e85e1857b1&displaylang=en

Вы, вероятно, найдете это установленным или не установленным в диалоговом окне «Установка и удаление программ» на панели управления.

...