VBA: -2147012739: в поддержке безопасного канала произошла ошибка - PullRequest
0 голосов
/ 13 марта 2020

Мой код Excel VBA вызывает два разных сервера, используя объект CreateObject("Msxml2.XMLHTTP.6.0"). Когда я выполняю код VBA на своем компьютере (Windows 10 и Office 2019), я не получаю никакой ошибки при вызове обоих серверов. У меня есть другой ноутбук (Windows 7 и Office 2013), на этом ноутбуке я могу успешно выполнить вызов на сервер один, но при вызове другого сервера я получаю сообщение об ошибке "-2147012739: ошибка в поддержке безопасного канала" в макросе VBA.

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

Единственный вариант, который мне нужно устранить, - это использовать VBA. Пожалуйста, помогите.

Примечание: у меня уже есть опция «Использовать TLS1.2», выбранная в свойствах Inte rnet, но я все еще получаю ошибку выше.

Код, который работает на обоих ПК:

Sub WORKING()
    Dim objHTTP As Object
    Dim reqJson As String
    Dim URL As String

    reqJson = "{""requestData"":{""actionDetails"":[{""templateName"":""TrialProjects"",""envAlias"":""DEV2"",""userName"":""amy.marlin"",""loggerSheetName"":""SL_Dbg_123"",""buttonClicked"":""Create Projects""}]}}"
    URL = "https://simplifiedloader01.com/COM_UserValidation/requestProcessor"

    Set objHTTP = CreateObject("Msxml2.ServerXMLHTTP.6.0")
    objHTTP.setTimeouts 0, 0, 0, 0
    objHTTP.Open "POST", URL, False

    objHTTP.setProxy 0, "", ""
    objHTTP.setRequestHeader "Content-Type", "application/json"
    objHTTP.setRequestHeader "CharSet", "charset=UTF-8"
    objHTTP.setRequestHeader "Content-Length", Len(reqJson)
    objHTTP.setRequestHeader "Connection", "Keep-Alive"
    objHTTP.Send (reqJson)
    MsgBox objHTTP.responseText
End Sub

Код, который работает только на Windows 10:

Sub NOTWORKING()
    Dim G_HTTP_Connection_Obj As Object
    Dim reqJson As String
    Dim URL As String

    reqJson = "<soap:Envelope xmlns:soap='http://www.w3.org/2003/05/soap-envelope' xmlns:pub='http://xmlns.oracle.com/oxp/service/PublicReportService'><soap:Header/><soap:Body><pub:validateLogin/></soap:Body></soap:Envelope>"
    URL = "https://adc2-zkuh-fa-ext.oracledemos.com/xmlpserver/services/ExternalReportWSSService?WSDL"

    Set G_HTTP_Connection_Obj = CreateObject("Msxml2.ServerXMLHTTP.6.0")
    G_HTTP_Connection_Obj.setTimeouts 0, 0, 0, 0
    G_HTTP_Connection_Obj.Open "POST", URL, False

    G_HTTP_Connection_Obj.setProxy 0, "", ""
    G_HTTP_Connection_Obj.setRequestHeader "Content-Type", "application/soap+xml"
    G_HTTP_Connection_Obj.setRequestHeader "CharSet", "charset=UTF-8"
    G_HTTP_Connection_Obj.setRequestHeader "Content-Length", Len(reqJson)
    G_HTTP_Connection_Obj.setRequestHeader "Connection", "Keep-Alive"
    G_HTTP_Connection_Obj.Send (reqJson)

    MsgBox G_HTTP_Connection_Obj.responseText

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...