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. ISQLXMLCommandManagedInterface.ExecuteToOutputStream() в Microsoft.Data.SqlXml.SqlXmlCommand.innerExecute(Stream strm) ... и т. Д. И т. Д.

Это сводит меня с ума. SQLXML - довольно устаревшая технология, и мы пытаемся использовать ее с новейшей SO. Я не могу найти официальную информацию о SQLXML и Windows 2008, кажется, что она официально не поддерживается, но они также не говорят, что она не поддерживается.

Установка SQLXML4.0SP1, кажется, работает нормально, но кажется, что во время выполнения происходит сбой.

Есть ли у вас какие-либо идеи? Кто-нибудь пробовал что-то подобное?

4 ответа

Пакеты для SQLXML 4.0 с пакетом обновления 1 (SP1) были доступны для загрузки только в апреле 2009 года пакета дополнительных компонентов Microsoft SQL Server 2008. Не уверен, почему они не появляются в пакете возможностей 2008 R2, но они не появляются.

Вот ваша ссылка на Feature Pack
Прямые ссылки на соответствующие версии SQLXML 4.0 SP1 можно найти на этой странице

Вы, вероятно, используете функциональность ISAPI, которая не поддерживается в SQLXML 4.x

Установите SQLXML 3.0 на Win 2008 Server (Vista,7) и для IIS 7.x измените совместимость управления IIS 6 - разрешите совместимость с метабазой IIS 6 и консоль управления IIS 6 (в разделе "Администрирование"/ "Диспетчер сервера"/ "Роли - веб-сервер (IIS)") "Ролевые услуги").

В 64-разрядной версии Win Server 2008 "Включить 32-разрядные приложения" для IIS/ пулов приложений.

SQLXML по умолчанию не устанавливается в SQLServer. Вы должны запустить установщик SQL Server и добавить функцию SQLXML. Я имею в виду SQL Server 2008.

Я рекомендую воспользоваться тем, что он работает на SQL 2005, чтобы преобразовать код, не использующий SQLXML. Вы можете использовать тот факт, что он работает, для создания тестов, которые доказывают, что он работает. Затем выполните преобразование и проверьте снова. Если тесты все еще показывают, что это работает, вы избавляетесь от устаревших технологий, в то время как есть еще кто-то, кто знает, что должна была делать устаревшая технология.

В противном случае, после того, как вы найдете решение этой неотложной проблемы (возможно, переустановите MSXML), вы начнете обсуждать это через 20 лет, но с той разницей, что никто не знает, что такое SQLXML.

Другие вопросы по тегам