WcfTestClient 訪問 SVC時,出現要求已經中止: 無法建立 ssl/tls 的安全通道。
WcfTestClient 是呼叫 C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.1 Tools\SvcUtil.exe 進行 SVC檔案解析
當 對方網址 Https 開頭URL的 SVC檔案,有機會遇到這個問題
問題的根本為 SvcUtil.exe 這一支程式要啟用 TLS 加密協定
若是在 程式中去 呼叫 SvcUtil.exe ,
可以加上 ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
如下範本:
using System.Net;
using System.Reflection;
namespace SvcUtil2
{
class Program
{
static void Main(string[] args)
{
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
// Your SvcUtil path here
var svcUtilPath = @"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.1 Tools\SvcUtil.exe";
var svcUtilAssembly = Assembly.LoadFile(svcUtilPath);
svcUtilAssembly.EntryPoint.Invoke(null, new object[] { args });
}
}
}
我是使用 WcfTestClient.exe 用來觀測 SVC
所以採用下列方法來 啟用 TLS
Add the following registry setting DWORD value as 1 and restart the box:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SchUseStrongCrypto
If the application is 32bit running on x64 windows, we need to modify the same key under the:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319\SchUseStrongCrypto
沒有留言:
張貼留言