SQLXML 与 Windows 2008 和 SQL Server 2008
我有一个使用 SQLXML 访问数据库上的数据的应用程序。 我们让它在 Windows 2003 服务器和 SQL Server 2005 上运行。现在客户端想要将它安装在 Windows 2008 和 SQL Server 2008 上,我们收到如下错误:
Microsoft.Data.SqlXml.SqlXmlException:类未注册 ---> System.Runtime.InteropServices.COMException (0x80040154):类未在 Microsoft.Data.SqlXml.Common.UnsafeNativeMethods 中注册。 Microsoft.Data.SqlXml.SqlXmlCommand.innerExecute(Stream strm) 处的 ISQLXMLCommandManagedInterface.ExecuteToOutputStream() ...等等
这让我发疯。 SQLXML 是一项相当过时的技术,我们正在尝试将它与最新的 SO 一起使用。 我找不到有关 SQLXML 和 Windows 2008 的官方信息,似乎它没有得到官方支持,但他们也没有说它不受支持。
SQLXML4.0SP1 安装似乎工作正常,但似乎在运行时失败。
你有什么想法? 有人尝试过这样的事情吗?
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?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
SQLXML 4.0 SP1 的包只能在 2009 年 4 月发行的 Microsoft SQL Server 2008 功能包中下载。 不确定为什么它们没有出现在 2008 R2 功能包中,但确实没有。
这是功能包
的链接
可以在该页面上找到相应版本的 SQLXML 4.0 SP1 的直接链接
The packages for SQLXML 4.0 SP1 were only available for download in the April 2009 release of the Microsoft SQL Server 2008 Feature Pack. Not sure why they don't appear in the 2008 R2 Feature Pack but they don't.
Here's your link to the Feature Pack
Direct links to the appropriate versions of SQLXML 4.0 SP1 can be found on that page
我的建议是利用它在 SQL 2005 上运行的事实将代码转换为不使用 SQLXML。 您可以利用它有效的事实来创建证明其有效的测试。 然后进行转换,并再次测试。 如果测试仍然表明它有效,那么您就已经摆脱了过时的技术,同时仍然有人知道过时的技术的用途。
否则,在找到针对这个迫在眉睫的问题的解决方案(也许重新安装 MSXML)后,您将在 20 年后进行此讨论,但不同的是,没有人知道 SQLXML 曾经是什么。
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.
默认情况下,SQLXML 未安装到 SQLServer。 您应该运行 SQL Server 安装程序,并添加 SQLXML 功能。
我的意思是 SQL Server 2008。
SQLXML is not installed to SQLServer by default. You should run SQL Server Installer, and add SQLXML feature.
I mean SQL Server 2008.
您可能正在使用 ISAPI 功能,该功能在 SQLXML 4.x 中不受支持。
在 Win 2008 Server (Vista,7) 上安装 SQLXML 3.0,对于 IIS 7.x,请更改 IIS 6 管理兼容性 - 允许 IIS 6 元数据库兼容性和 IIS 6管理控制台(在管理工具/服务器管理器/“角色 - Web 服务器 (IIS)”/“角色服务”中)。
在 64 位 Win Server 2008 上,为 IIS/应用程序池“启用 32 位应用程序”。
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.