У нас есть старый код VB на сервере, который скомпилирован и выполняет вызов веб-службы. Провайдер недавно обновил TLS1.1 до TLS1.2, и тогда код перестал работать, и мы начали получать сообщение об ошибке
Базовое соединение было закрыто: при отправке произошла непредвиденная ошибка
Я не очень знаком с VB. Есть ли какие-либо изменения, которые мы можем сделать на Windows Server , чтобы скомпилированный код устанавливал соединение через TLS1.2?
Это заняло некоторое время, но я добавил трассировку стека. Я немного отредактировал его для конфиденциальности:
Вот сообщение об ошибке:
Базовое соединение было закрыто: при отправке произошла непредвиденная ошибка.
Трассировка:
в System.Web.Services.Protocols.WebClientProtocol.GetWebResponse (запрос WebRequest)
в System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse (запрос WebRequest)
в System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke (String methodName, Object [] параметры)
at (...............). BeginSession (строковый профиль) в C: \ Users ... \ Desktop ................ ............. vb: строка 146
в (................) RetrieveData (Int32 queueNumber) в C: \ Users (.................... ..............). vb: строка 475
в (.................) в C: \ Users (........................ ...........) vb: строка 121
Вот часть кода, где устанавливается соединение с веб-сервисом (строка 146 в стеке выше):
<System.Web.Services.Protocols.SoapDocumentMethodAttribute("......BeginSession", RequestNamespace:="........com", ResponseNamespace:=".............com", Use:=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle:=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)> _
Public Function BeginSession(ByVal Profile As String) As String
Dim results() As Object = Me.Invoke("BeginSession", New Object() {Profile})
Return CType(results(0), String)
End Function