Windows更新后将Active设置为False时TIdHttpServer冻结

时间:2018-07-16 13:01:21

标签: delphi indy

我们有一个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),它就会挂起。

1 个答案:

答案 0 :(得分:4)

您可能遇到过类似的问题:

Windows 2012 R2 closesocket() hangs on listening socket

  

此问题是由Microsoft KB4338815 修补程序引起的,该问题导致closesockett®永久挂在英特尔至强处理器上

此问题已通过卸载确实已安装的 KB4338815 得以解决。因此,请尝试在系统上卸载该KB,然后查看它是否可以解决您的问题。