According to .net guidance of TLS protocol programming, it suggests to config security via appcontext switch when your project targets on .net 4.6. This way works when add appcontext in app.config for console application. However, it doesn't work when add appconext switch in web.config for website project.
This is the config I add.
<runtime>
<AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchUseStrongCrypto=false;Switch.System.Net.DontEnableSystemDefaultTlsVersions=false"/>
</runtime>
<httpRuntime targetFramework="4.7.2" />
may also work. https://mcmap.net/q/668551/-tls-1-2-not-negotiated-in-net-4-7-without-explicit-servicepointmanager-securityprotocol-call – Submerge