我在Windows中的docker容器大约是未来9个小时,并且正在阻止https工作。
我正在尝试使用C#进行SOAP调用。一切都可以在我的Win10 WS上完美运行,但是如果我将其放入同一主机上的docker容器中,它将失败
抛出异常: 中的“ System.ServiceModel.Security.MessageSecurityException” mscorlib.dll类型的异常 发生“ System.ServiceModel.Security.MessageSecurityException” mscorlib.dll,但未在用户代码中处理。 收到来自另一方的错误保护的错误。见 内部FaultException,以获取故障代码和详细信息。
这是在Windows 10计算机(1803版)上
我已经确认主机和容器都具有相同的时区(UTC + 8),并且如果我更改主机时间以尝试进行补偿,则主机也有相同的错误,但是容器似乎并不想花费新的时间,并保持在未来约9个小时。
大约一年前,我发现了一些类似的问题,但似乎都没有解决该问题。没有修复程序,我看不到如何在容器中工作。
我已经在以下图片上尝试过
FROM microsoft/aspnet
FROM mcr.microsoft.com/dotnet/framework/aspnet:20181113-4.7.2-windowsservercore-1803
FROM microsoft/iis
在Docker Desktop 2.1.0.1(37199)上运行
编辑
我还尝试在Windows上使用curl来访问银行站点(https),该站点在容器中也失败,但在我的工作站上可以正常工作。卷曲误差如下
PS C:\> curl https://www.anz.com.au/personal/
curl : The request was aborted: Could not create SSL/TLS secure channel.
At line:1 char:1
+ curl https://www.anz.com.au/personal/
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation:
(System.Net.HttpWebRequest:Htt
pWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId :
WebCmdletWebResponseException,Microsoft.PowerShe
ll.Commands.InvokeWebRequestCommand
更多信息
在Windows Server 2019(版本1809)上安装mcr.microsoft.com/dotnet/framework/aspnet:4.8(日期正确在容器中的主机之后),我的IIS应用现在可以与所需的https站点进行通信了。 >
1803版本和日期似乎有一个长期存在的问题。我仍然希望有人能为1803版提供解决方案。
答案 0 :(得分:2)
我已经确定Windows ver 1803 docker容器(可能不是主机操作系统)在docker容器中的日期存在问题。我已经使用Windows Update将我的操作系统更新为1903,并重新运行了1803版本的Docker容器,它仍然出现相同的问题。
然后我创建了一个1903年版的容器,它现在可以正确反映当前的日期/时间,而不是将来的大约9个小时。
因此,解决方案是升级到更新的Win10版本。