IE7は、SVGチャートを表示しようとしているときにmsxml3.dll ActiveXコントロールを要求しています
-
10-07-2019 - |
質問
現在サポートしている新しい製品を継承しました。 SVGを使用してグラフを表示するWebアプリケーションです。
私のマシンでは、完全に実行されます。 Adobe SVG Viewer 3.0を使用してSVGチャートをロードして表示します。カスタマーマシン上では、SVGチャートは読み込まれません。
Webアプリケーションがページの読み込み中にMSXML3 ActiveXコントロールを要求していることに気付きました。上記のActiveXコントロールの実行を許可しても、SVGチャートは表示されません。
自分のマシンをチェックし([ツール]-> [アドオンの管理]-> [アドオンの有効化または無効化])、MSXML3.DLLも使用していません。アクティブなアドオンはAdobe SVG Viewer 3.0のみです。
両方のマシンがIE7を使用しており、両方が同じ「データセット」を使用しています。
ここで考えられる問題は何ですか?
ありがとう!
解決 2
顧客のマシンにはVisual Studio 2005がインストールされています。
このKB記事に記載されているように、Adobe SVG ViewerとVisual Studio 2005は互いに嫌いです。 http://support.microsoft.com/kb/916442
次のようにSVGチャートを埋め込みます:
<embed src="PaintSVG?id=12345" type="image/svg+xml"></embed>
VS2005をインストールすると、「application / xml MIMEタイプを.aspxファイル名拡張子に関連付ける」ため、IEは&asp; aspx&quot;を埋め込んでいると判断します。ファイルと、この&quot; aspx&quot;ファイルはXMLドキュメントであるため、それ自体をロードしようとします(MSXML3 ActiveXコントロールを要求する理由を説明します)。
回避策として、「トリック」する必要があります。 IEでは、URLの最後に次のパラメーターを追加して、実際にSVGファイルを埋め込みます:
&Dummy=SVG-VS2005-WorkAround.svg
そのように:
<embed src="PaintSVG?id=12345&Dummy=SVG-VS2005-WorkAround.svg" type="image/svg+xml"></embed>
他のヒント
Msxml3は、XP以降のすべてのOSに組み込まれています。ただし、場合によっては上位バージョンが必要になることがあります(たとえば、Sp10にはVistaが付属しています)。 ダウンロードできる最大SPはSP7です。他のすべてはWindows Updateを介してのみ利用可能です。
Chloeが提供するリンクを使用できます。 http://www.microsoft.com/downloads/details.aspx?familyid=28494391-052B-42FF-9674-F752BDCA9582&displaylang=en でMSXML 3を取得します。
私の知る限り、MSXML 6はMSXML 3を必要とするアプリケーションには不十分です。
また、依存関係ウォーカー(ここから入手可能)を使用して、アプリケーションActiveXに必要なDLLを確認できます。
ちょっとしたことですが、これをインストールしてみてください
Microsoft XML Parser(MSXML)3.0 Service Pack 7(SP7)
http://www.microsoft。 com / downloads / details.aspx?familyid = 28494391-052B-42FF-9674-F752BDCA9582&amp; displaylang = en
または(一見)新しいバージョンはこちら
Microsoft Core XML Services(MSXML)6.0
http://www.microsoft。 com / downloads / details.aspx?familyid = 993c0bcf-3bcf-4009-be21-27e85e1857b1&amp; displaylang = en
おそらく、コントロールパネルの[アプリケーションの追加と削除]ダイアログボックスにインストールされているか、インストールされていないことがわかります。