我有一台 Windows Server 2012 R2 服务器,除 TLS 1.2 之外的所有协议均已禁用。当我尝试使用 powershell 命令行程序执行 Application Insights 时,它会获取 nuget 包并失败。
我创建了一个脚本,在运行命令之前明确设置了协议,但似乎命令行程序是针对 .NET 4.5 或更低版本编写的,并使用默认协议选择方案,将其限制为 TLS 1.0。
Import-Module 'C:\Program Files\Microsoft Application Insights\Status Monitor\PowerShell\Microsoft.Diagnostics.Agent.StatusMonitor.PowerShell.dll'
#fails on server that requires TLS 1.2
Invoke-WebRequest "https://packages.nuget.org/api/v2"
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12
#works on server that requires TLS 1.2
Invoke-WebRequest "https://packages.nuget.org/api/v2"
#fails under both conditions
Get-ApplicationInsightsMonitoringStatus
如何让 App Insights powershell 命令在仅启用了 TLS 1.2 的服务器上运行?
答案1
您需要通过注册表为 .NET Framework 启用 TLS 1.2。