新聞速報

        

2022年10月3日 星期一

WcfTestClient 訪問 SVC時,出現要求已經中止: 無法建立 ssl/tls 的安全通道。

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


沒有留言:

張貼留言