我在Windows Server 2012 上的 IIS 上使用经典asp ,并使用Server.CreateObject("Msxml2.XMLHTTP.6.0")
进行付款请求处理器,然后突然停止工作。
付款处理器已禁用TLS 1.0,我们应该使用TLS 1.1或1.2;我认为这是问题的原因...
我如何查看以及是否需要更改它使用的协议?
答案 0 :(得分:0)
在这里看看:https://docs.microsoft.com/en-us/dotnet/framework/network-programming/tls#systemdefaulttlsversions-特别是在SystemDefaultTlsVersions和SchUseStrongCrypto部分。您还应该继续并禁用SChannel(负责SSL / TLS的Windows组件)中的所有不安全密码/协议/密钥交换。
有一个名为Nartac的公司提供的GUI工具IISCrypto,它具有一些常用的配置文件,(相比)直接编辑注册表来禁用各种过时的组件,这些配置文件(在某种程度上)更安全。参见https://www.nartac.com/Products/IISCrypto。
警告语-注意您的SChannel设置(编辑注册表或使用IIS Crypto)-这些设置在整个Windows中都使用,并且对于RDP和WinRM等服务是必需的其他事情-首先备份,然后仔细测试。
答案 1 :(得分:0)
我有类似的情况-我在VB脚本中使用Msxml2.XMLHTTP进行API端点调用,突然间它停止工作。我收到错误消息“系统无法找到指定的资源”,并且http.status返回12029。问题不在URL中,当我尝试从浏览器中调用URL时,此问题起作用了。但是当我启动VB脚本时,它在http.send行上失败了。
我最终如何解决?
我不得不将推荐的更新安装到Windows Server 2012:
Microsoft .NET Framework 4.8 for Windows Server 2012 for x64 (KB4486081)
我也安装了一个可选更新:
Internet Explorer 11 for Windows Server 2012 for x64
此后,服务器重新启动,它又开始工作。我可以同时使用:“ Msxml2.XMLHTTP.6.0”或“ Msxml2.XMLHTTP”,没关系。