views:

485

answers:

3

Hello,

We inherited a new product that we are now supporting. It is a web application that displays chart(s) using SVG.

On my machine, it runs perfectly. It loads and shows the SVG charts using Adobe SVG viewer 3.0. While on the customer machine, the SVG charts wont load.

I noticed that the web application is requesting for MSXML3 ActiveX control during page load. Even if you allow the said ActiveX control to run, the SVG charts wouldn't appear.

I checked on my machine (Tools->Manage Add-ons->Enable or Disable Add-ons) and it doesn't even use MSXML3.DLL. The only active add-on is Adobe SVG Viewer 3.0.

Both machine are using IE7 and both are using the same "data sets".

What could be the possible issues here?

Thanks!

A: 

Just a hunch, but try installing this
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

Or the (seemingly) newer version this
Microsoft Core XML Services (MSXML) 6.0
http://www.microsoft.com/downloads/details.aspx?familyid=993c0bcf-3bcf-4009-be21-27e85e1857b1&displaylang=en

You will probably find this installed or not installed in the Add/Remove Programs dialog box in Control Panel.

Chloe
Oh, I forgot the obvious solution: Firefox.
Chloe
+1  A: 

Msxml3 is built in in all OSes form XP up. However sometimes you may need a higher version of it (say Sp10 comes with Vista). The max SP you can download is SP7. All others are available only via Windows Update.

You can use the link provided by Chloe : http://www.microsoft.com/downloads/details.aspx?familyid=28494391-052B-42FF-9674-F752BDCA9582&displaylang=en to get MSXML 3.

As per my knowledge MSXML 6 will NOT suffice for an Application that needs MSXML 3.

Also you can use dependency walker (available here) to check what dll the application ActiveX needs.

Ganesh R.
A: 

Customer's machine have Visual Studio 2005 installed.

Adobe SVG Viewer and Visual Studio 2005 hates each other as documented in this KB article. http://support.microsoft.com/kb/916442

We embed the SVG chart like so:

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

When you have VS2005 installed, it “associates the application/xml MIME type with the .aspx file name extension” so now IE thinks that you are embedding an "aspx" file and when it discovers that this "aspx" file is an XML document, it will then try to load it as such (explains why it is asking for the MSXML3 ActiveX control).

As a work around, we need to "trick" IE that we are actually embedding an SVG file by adding the following parameters at the end of the URL:

&Dummy=SVG-VS2005-WorkAround.svg

Like so:

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