1

現在サポートしている新製品を継承しました。SVGを使ってチャートを表示するWebアプリケーションです。

私のマシンでは、完全に動作します。Adobe SVG ビューアー 3.0 を使用して SVG チャートを読み込んで表示します。顧客のマシンでは、SVG チャートが読み込まれません。

ページの読み込み中に Web アプリケーションが MSXML3 ActiveX コントロールを要求していることに気付きました。上記の ActiveX コントロールの実行を許可しても、SVG チャートは表示されません。

自分のマシンをチェックして ([ツール] -> [アドオンの管理] -> [アドオンの有効化または無効化])、MSXML3.DLL も使用していません。アクティブなアドオンは、Adobe SVG Viewer 3.0 だけです。

どちらのマシンも IE7 を使用しており、どちらも同じ「データ セット」を使用しています。

ここで考えられる問題は何ですか?

ありがとう!

4

3 に答える 3

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 は「aspx」ファイルを埋め込んでいると認識し、この「aspx」ファイルが XML ドキュメントであることを発見すると、 、それをそのままロードしようとします (MSXML3 ActiveX コントロールを要求している理由を説明します)。

回避策として、URL の末尾に次のパラメータを追加して、実際に SVG ファイルを埋め込んでいることを IE に「だます」必要があります。

&Dummy=SVG-VS2005-WorkAround.svg

そのようです:

<embed src="PaintSVG?id=12345&Dummy=SVG-VS2005-WorkAround.svg" type="image/svg+xml"></embed>
于 2009-08-04T09:10:30.787 に答える
2

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 を確認することもできます。

于 2009-08-03T08:03:02.687 に答える
1

念のため、この
Microsoft XML Parser (MSXML) 3.0 Service Pack 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

コントロール パネルの [プログラムの追加と削除] ダイアログ ボックスで、これがインストールされているか、インストールされていないかを確認できます。

于 2009-08-03T07:54:05.017 に答える