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

StackOverflow https://stackoverflow.com/questions/1221096

  •  10-07-2019
  •  | 
  •  

Вопрос

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

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

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

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

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

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

Спасибо!

Это было полезно?

Решение 2

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

Adobe SVG Viewer и Visual Studio 2005 ненавидят друг друга, как описано в этой статье KB. 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-документом, он затем попытается загрузить его как таковой (объясняет, почему он запрашивает элемент управления ActiveX MSXML3).

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

&Dummy=SVG-VS2005-WorkAround.svg

Вот так:

<embed src="PaintSVG?id=12345&Dummy=SVG-VS2005-WorkAround.svg" type="image/svg+xml"></embed>

Другие советы

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.

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top