我们有一个Indy(版本10.6.1.5235)TIdHttpServer“服务”,在Delphi 2007中已经使用了很多年。在最新的Windows Update(KB4338815和KB4338830)之后,我们注意到TIdHttpServer设置为false时该服务冻结。
我已包含创建TIdHttpServer的源代码。在我们的服务“停止”处理程序中,将 IdHttpServer1.Active 设置为False,这就是冻结的地方。似乎Indy尝试关闭http连接时挂起。有解决方法吗?
更新一个每个Remy Lebeau,我创建了一个最小,完整和可验证的示例。在这里:
Dim aes_CryptoTransform As ICryptoTransform = AesCryptoServiceProvider.Create.CreateEncryptor(aesKeySet.Key, aesKeySet.IV)
Dim textBytesToDecrypt() As Byte = File.readAllBytes("C:\encryptText.text")
dim plainText as string = nothing
using msEncrypt As New MemoryStream(textBytesToDecrypt)
using csEncrypt As New CryptoStream(textBytes, aes_CryptoTransform, CryptoStreamMode.read)
using textStream as New StreamReader(csEncrypt)
plainText = textStream.readToEnd()
End Using
csEncrypt.close()
End Using
End Using
应用程序可以正常运行,但是一旦您单击“停止”按钮(将IdHttpServer Active属性设置为False),它就会挂起。
答案 0 :(得分:4)
您可能遇到过类似的问题:
Windows 2012 R2 closesocket() hangs on listening socket
此问题是由Microsoft KB4338815 修补程序引起的,该问题导致
closesocket
t®永久挂在英特尔至强处理器上
此问题已通过卸载确实已安装的 KB4338815 得以解决。因此,请尝试在系统上卸载该KB,然后查看它是否可以解决您的问题。