У меня есть две машины 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 и добавьте определенные настройки из сломанного приложения.
Если он нормально работает на базовой странице того же приложения, проблема в вашей странице.
Не уверен, что внутри конфигурации может привести к поломке, но я бы попробовал.