Issue
Msxml2.ServerXMLHTTP продолжает возвращать 401 - Несанкционированные ошибки каждый раз, когда мы пытаемся прочитать содержимое файла (ASP) с веб-сервера.
Исходный сервер работает под управлением IIS6 с использованием интегрированного входа NTLM.
Этот процесс ранее успешно использовался, но только для извлечения файлов XML с внешних веб-сайтов, а не с внутренних.
Настройки прокси в реестре сервера, на котором запущен скрипт, также были обновлены для обхода данного веб-сайта, но безрезультатно.
Все пути, указанные в VBScript, были проверены и протестированы, и они являются правильными.
Пользователь, выполняющий сценарий, имеет правильные разрешения на чтение / запись для всех расположений, указанных в сценарии.
Требуется решение
Чтобы определить причину неавторизованных сообщений HTTP 401, чтобы скрипт работал должным образом.
Описание
Наша организация управляет внутренней сетью, где контент реплицируется на серверы на каждом из наших удаленных сайтов. Это гарантирует, что эти сайты продолжают быстрый доступ к важной информации, документации и данным, даже в случае потери соединения.
Мы находимся в процессе совершенствования списка и управления формами (теми неприятными бумажками, которые нужно заполнять для конкретных задач). Это включает создание базы данных всех наших форм.
Однако, поскольку организация недостаточно умна, чтобы вкладывать средства в экземпляры MSSQL Server на каждом сайте, репликация базы данных и доступ к ней с локального сервера SQL невозможны.
Чтобы обойти это, я построил серию представлений (ASP-страниц), которые отображают необходимые данные. Затем я намереваюсь использовать Msxml2.ServerXMLHTTP от VBScript, чтобы я мог прочитать полученные страницы и сохранить выходные данные в статический файл на сервере.
Оттуда существующий процесс репликации может передавать эти файлы на сайт - пользователи не подозревают, что смотрят на статическую страницу, которая, как оказалось, была сгенерирована из выходных данных базы данных.
Код
' Forms - Static Page Generator
' Implimented 2011-02-15 by Michael Harris
' Purpose: To download the contents of a page, and save that page to a static file.
' Target category: 1 (Contracts)
' Target Page:
' http://sharename.fpc.wa.gov.au/corporate/forms/generator/index.asp
' Target path: \\servername\sharename\corporate\forms\index.asp
' Resulting URL: http://sharename.fpc.wa.gov.au/corporate/forms/index.asp
' Remove read only
' Remove read only flag on file if present to allow editing
' If file has been set to read only by automated process, turn off read only
Const READ_ONLY = 1
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.GetFile("\\server\sharename\corporate\forms\index.asp")
If objFile.Attributes AND READ_ONLY Then
objFile.Attributes = objFile.Attributes XOR READ_ONLY
End If
Dim webObj, strURL
Set webObj = CreateObject("Msxml2.ServerXMLHTTP")
strURL = "http://sharename.fpc.wa.gov.au/corporate/forms/generator/index.asp"
webObj.Open "GET", strURL
webObj.send
If webObj.Status=200 Then
Set objFso = CreateObject("Scripting.FileSystemObject")
Set txtFile = objFso.OpenTextFile("file:\\servername.fpc.wa.gov.au\sharename\corporate\forms\index.asp", 2, True)
txtFile.WriteLine webObj.responseText
txtFile.close
ElseIf webObj.Status >= 400 And webObj.Status <= 599 Then
MsgBox "Error Occurred : " & webObj.Status & " - " & webObj.statusText
Else
MsgBox webObj.ResponseText
End If