Ошибка с SQLXMLCommand и развертыванием в IIS 6.0 - PullRequest
0 голосов
/ 15 июня 2011

Я получаю сообщение об ошибке при попытке перенести мое приложение ASP.NET с VS2010 на наш веб-сервер IIS 6.0.Ошибка возникает в первый раз, когда приложение пытается создать новый объект SQLXMLCommand на странице входа в систему.

При переходе на страницу входа в систему и вводе действительных учетных данных я получил сообщение о том, что возникла исключительная ситуация нулевой ссылки.При расследовании исключения мы смогли определить, что другое исключение было сгенерировано и перехвачено, в результате чего позднее в коде возникло исключение нулевой ссылки.

Соответствующая строка кода, вызывающая исключение:

New SqlXmlCommand(conn.ConnectionString & ";Provider=SQLOLEDB.1;")

Исключение вызывает следующие проблемы:

Получение фабрики классов COM для компонента с CLSID {83D0FC3E-8B31-4B35-A1B2-346BA3954514} не удалось из-за следующей ошибки: 80040154 Класс не зарегистрирован (Исключениеиз HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)). "System.Runtime.InteropServices.COMException (0x80040154): Извлечение фабрики классов COM для компонента с CLSID {83D0FC3E-8B31-4B35-A1B2-346BA395451} из-за ошибки класса 800_346BA3954514} из-за ошибки класса 80063439445514}не зарегистрировано (Исключение из HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)). в System.RuntimeTypeHandle.CreateInstance (тип RuntimeType, логический publicOnly, логический noCheck, логический и canBeCached, RuntimeMethodanCheleCheleNeleShele)ystem.RuntimeType.CreateInstanceSlow (логическое значение publicOnly, логическое значение skipCheckThis, логическое значение fillCache) в System.RuntimeType.CreateInstanceDefaultCtor (логическое значение publicOnly, логическое значение skipVisibilityChecks, тип логического объектаData.SqlXml.SqlXmlCommand.fillManagedWrapper () в Microsoft.Data.SqlXml.SqlXmlCommand.construct () в Microsoft.Data.SqlXml.SqlXmlCommand..ctor (String cnString) в dialog.login.UserLogin (имя пользователя String, 2011 г., строковое имя пользователя,-15 11: 40: 52.104 CriticalError N / A 58 "http://sigappsdv/dialogue/login.aspx" dialog.login.UserLogin --->" Сбой веб-службы 2 в System.RuntimeTypeHandle.CreateInstance (тип RuntimeType, логический тип publicOnly, логический тип noCheck, логический тип & canBeternal_and RunMandCandChindMandChindMandChindMandHandMandChindMandHandMandChindMandChindMandChindMandHandCh, Boolean & bNeedSecurityCheck) в System.RuntimeType.CreateInstanceSlow (Boolean publicOnly, логический skipCheckThis, Boolean fillCache) в System.RuntimeType.CreateInstanceDefaultCtor (логический publicOnly, логический пропускibilityChecks, Boolean skipCheckThis, Boolean fillCache) в System.Activator.CreateInstance (Тип тип, Boolean nonPublic) в Microsoft.Data.SqlXml.SqlXmlCommand.fillManagedWrapper () в Microsoft.Data.SqlXml.Sql.Data (Sql.Data).SqlXml.SqlXmlCommand..ctor (String cnString) at dialog.login.UserLogin (Строковое имя пользователя, Строковый пароль, Строковый язык) "

Если посмотреть дальше, исключение выдается только в ИнтернетеСервер.Нет исключений, если я использую localhost.Я, хотя я могу пропустить ссылку на Microsoft.Data.SqlXml.dll, так как он работал на localhost, а не на веб-сервере.Я попытался исправить это, включив ссылку на dll в свой проект развертывания и убедившись, что она была добавлена ​​в папку bin, но безрезультатно.

Спасибо за помощь.

Редактировать:

SQLXML 4.0 не был установлен на нашем веб-сервере, он был частью базовой установки моей машины.

1 Ответ

2 голосов
/ 15 июня 2011

В дополнение к управляемой сборке SQLXML необходимо установить собственную серверную библиотеку SQLXML на сервере.

Библиотеки SQLXML документированы в http://msdn.microsoft.com/en-us/library/ms171779.aspx,, а установщик можно найти в http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=8824

...