views:

615

answers:

3

Hi all,

I have an application that uses SQLXML to access data on the database. We have it working on a Windows 2003 server and SQL Server 2005. Now the client wants to install it on Windows 2008 and SQL Server 2008 and we are getting errors like:
Microsoft.Data.SqlXml.SqlXmlException: Class not registered ---> System.Runtime.InteropServices.COMException (0x80040154): Class not registered at Microsoft.Data.SqlXml.Common.UnsafeNativeMethods. ISQLXMLCommandManagedInterface.ExecuteToOutputStream() at Microsoft.Data.SqlXml.SqlXmlCommand.innerExecute(Stream strm) ... etc etc

This is driving me crazy. SQLXML is quite an obsolete technology, and we are trying to use it with the latest SO. I can't find official information about SQLXML and Windows 2008, it seems it's not officially supported but they don't say it's not supported either.

The SQLXML4.0SP1 installation seems to work fine, but it seems like it fails on runtime.

Do you have any ideas? Has someone tried anything like this?

A: 

My recommendation would be to take advantage of the fact that it works on SQL 2005 to convert the code to not use SQLXML. You can take advantage of the fact it works to create tests that prove it works. Then do the conversion, and test again. If the tests still show it works, you've rid yourself of obsolete technology while there's still someone living who knows what the obsolete technology was meant to do.

Otherwise, after finding the fix for this immediate problem (maybe reinstall MSXML) you'll be having this discussion 20 years from now, but with the difference that nobody living knows what SQLXML used to be.

John Saunders
A really philosophical answer :) I agree, however further developing right now is not an option.
Rafa G. Argente
A: 

SQLXML is not installed to SQLServer by default. You should run SQL Server Installer, and add SQLXML feature. I mean SQL Server 2008.

A: 

You are probably using ISAPI functionality, which is not supported in SQLXML 4.x

Install SQLXML 3.0 on Win 2008 Server (Vista,7) and for IIS 7.x change IIS 6 Management Compatibilty - allow IIS 6 Metabase Compatibility and IIS 6 Management Console (in Administrative Tools/Server Manager/"Roles - Webserver (IIS)"/ "Role Services" ).

On 64bit Win Server 2008 'Enable 32-bit Applications' for IIS/Application Pools.

M.Valach

related questions