基本上我们需要为.NET 4.x启用TLS 1.2。对我来说,进行此注册表更改有效,并停止了事件日志填充Schannel错误。
有关答案的更多信息可以在此处找到。
在系统(SCHANNEL)级别启用TLS 1.2:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client]
"DisabledByDefault"=dword:00000000
"Enabled"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server]
"DisabledByDefault"=dword:00000000
"Enabled"=dword:00000001
(可能也适用于其他TLS版本的等效密钥)
告诉.NET Framework使用系统TLS版本:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]
"SystemDefaultTlsVersions"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319]
"SystemDefaultTlsVersions"=dword:00000001
在边缘情况下,.NET Framework 4.x应用程序需要启用和禁用不同的协议,而操作系统则可能不希望这样做。
我在重建从Server 2012R2迁移到DataCenter 2019的服务器时遇到了这个问题。 这让我感到非常疯狂,因为我可以从Visual Studio调试它,但是IIS立即返回500错误。
在我的情况下,我们有几个.NET 3.5和.NET 4.5应用程序混合在同一台服务器上,当我为其中一个4.5应用程序创建应用程序时,我已经将其指向了2.0应用程序池。
将其重新指向4.0应用程序池解决了这个问题。
在未对生产服务器进行任何更改的情况下,我们开始收到此错误。尝试了几种不同的方法并认为可能存在DNS问题后,重新启动IIS解决了该问题(仅重新启动站点无法解决该问题)。这可能不适用于所有人,但如果我们首先尝试这样做,将节省很多时间。
我在这里找到了这个链接:https://port135.com/schannel-the-internal-error-state-is-10013-solved/
"正确的文件权限 更正c:\ProgramData\Microsoft\Crypto\RSA\MachineKeys文件夹的权限:
Everyone Access: 特殊应用于“仅此文件夹” Network Service Access: 读取和执行应用于“此文件夹、子文件夹和文件” Administrators Access: 完全控制应用于“此文件夹、子文件夹和文件” System Access: 完全控制应用于“此文件夹、子文件夹和文件” IUSR Access: 完全控制应用于“此文件夹、子文件夹和文件” 内部错误状态为10013 完成这些更改后,重新启动服务器。10013错误应该会消失。"