Json Post到 https的坑 - the underlying connection was closed an unexpected error occurred on a send(遠程服

最近作了一個安裝包,安裝包會彈出dotnet的 窗體,這個安裝包會去調用https的一個api。用測試程序測試窗體都是好的。一旦打入安裝包後,就報錯。研究了半天,原來是https惹的禍api

:解決方案
  1. .NET 4.6 and above. You don’t need to do any additional work to support TLS 1.2, it’s supported by default.DOTNET 4.6.1 以上版本,默認就能夠了app

  2. .NET 4.5. TLS 1.2 is supported, but it’s not a default protocol. You need to opt-in to use it. The following code will make TLS 1.2 default, make sure to execute it before making a connection to secured resource:測試

    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 this

  1. .NET 4.0. TLS 1.2 is not supported, but if you have .NET 4.5 (or above) installed on the system then you still can opt in for TLS 1.2 even if your application framework doesn’t support it. The only problem is that SecurityProtocolType in .NET 4.0 doesn’t have an entry for TLS1.2, so we’d have to use a numerical representation of this enum value:

    ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;spa

  1. .NET 3.5 or below. TLS 1.2 is not supported (*) and there is no workaround. Upgrade your application to more recent version of the framework. DOTNET3.5不支持

 

各類tls版本兼容寫法:code

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tlsit

 

 

 

 

其實默認配置DOTNET 4.6.1 以上版本就能夠了,可是由於我是安裝包,無法寫配置文件.....io

 

<startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
  </startup>
相關文章
相關標籤/搜索