下一个 API。连接强行关闭

Nexmo API. Connection Forcibly Closed

Sub SendReplyNexmo(reply As String)

        Dim w As New Net.WebClient
        Dim values As New Specialized.NameValueCollection
        values.Add("to", sender)
        values.Add("text", reply)
        values.Add("from", sentto)
        values.Add("api_key", nexAPIKey)
        values.Add("api_secret", nexAPISecret)
        Try
            w.UploadValues(New Uri("https://rest.nexmo.com/sms/json"), "POST", values)
            w.Dispose()
        Catch ex As Exception
            Dim logFile As IO.StreamWriter
            If IsNothing(HttpContext.Current) Then
                logFile = New IO.StreamWriter("C:\logs\SMSerror.log", True)
            Else
                logFile = New IO.StreamWriter(HttpContext.Current.Server.MapPath("/logs/SMSerror.log"), True)
            End If
            logFile.WriteLine(ex.Message)
            logFile.Dispose()
        End Try
    End Sub

这是我用来连接 Nexmo 的代码 API。然后,突然之间,我使用它的应用程序崩溃了,我现在收到了错误。

基础连接已关闭:发送时发生意外错误。

我试过设置自定义用户代理字符串,但没有改变。我试过搜索文档。

ASP.NET Windows Server 2008 R2 上的 4.6.1 IIS 7.5。 windows 7

上的桌面版本 运行

这是因为 Nexmo 禁用了旧版 TLS 协议。它现在支持 v1.2。 您可以了解更多信息 here。 您可以从您的应用程序向以下 url 发出 http 请求以验证 TLS 版本,它应该 return 如果支持 1.2 则为 200Ok,如果不支持则应为 400。 如果没有,这应该可以解决问题:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12