Назад | Перейти на главную страницу

IIS 10.0, классический ASP не может создать объект MSXml2.ServerXmlHttp.6.0

У меня есть две машины Server 2016, на которых запущено классическое приложение ASP в интегрированном пуле x64, и Общая конфигурация.

Я думал, что оба сервера настроены одинаково, однако один сервер получает сообщение об ошибке:

Установите obj = Server.CreateObject ("MSXml2.ServerXmlHttp.6.0")

Err.Number = 800401F3

ТОЛЬКО в моем приложении!

Если я помещу эту строку на отдельную страницу ASP, работающую на том же сайте, она завершится нормально (Err.Number = 0)

Я не нашел записей в журнале событий.

Что я пробовал:

Я надеюсь на предложения о том, где искать / как решить эту проблему.

Это была проблема не с созданием объекта, а с ошибкой (или изменением поведения) в Server.CreateObject () и некоторым кодом, который обрабатывал несколько версий другой COM DLL.

Был код, который обрабатывал несколько возможных версий DLL следующим образом:

    obj = Server.CreateObject("Version1.Object")

    If Err.Number <> 0 Then
        obj = Server.CreateObject("Version2.Object")
    End If

В конце, если предположить, что один из них был успешным, Err.Number = 0

В IIS 10.0 (Server 2016) успешный Server.CreateObject («Version2.Object») оставил предыдущее значение в Err.Number из Server.CreateObject («Version2.Object»).

Новый код:

obj = Server.CreateObject("Version1.Object")

If Err.Number <> 0 Then
    Err.Clear
    obj = Server.CreateObject("Version2.Object")
End If

Если он нормально работает на другой странице того же сайта, но не работает на другой странице того же приложения, это должно быть связано с настройками приложения. Начните с пустого web.config и добавьте определенные настройки из сломанного приложения.

Если он нормально работает на базовой странице того же приложения, проблема в вашей странице.

Не уверен, что внутри конфигурации может привести к поломке, но я бы попробовал.