几个小时后,VB6应用程序被防火墙阻止

时间:2012-04-27 13:58:44

标签: http vb6 firewall cisco

我从客户那里得到了一份报告,说他们遇到了我创建的VB6应用程序和他们的cisco防火墙的问题。应用程序每隔几秒就向我们的服务器发送HTTP POST个请求,发送一个小的base64编码字符串。该应用程序最初工作正常,但大约三个小时后似乎无法联系我们的服务器或互联网。当应用程序位于防火墙之外时,应用程序可以愉快地运行。

我没有关于防火墙的更多细节,但这里是帖子的VB6代码(Winsock1是一个Winsock控件):

strHttp = "POST" & URL & " HTTP/1.1" & vbCrLf
strHttp = strHttp & "Content-Type: application/x-www-form-urlencoded; charset=UTF-8" & vbCrLf
strHttp = strHttp & "X-Method: Submit" & vbCrLf
strHttp = strHttp & "Content-Length: " & lngBodyLength & vbCrLf
strHttp = strHttp & "Accept: text/html" & vbCrLf
strHttp = strHttp & "User-Agent: MyApplication (www.ourwebsite.com)" & vbCrLf
strHttp = strHttp & "Host: " & HOST & vbCrLf

strHttp = strHttp & vbCrLf & strBody

mainForm.Winsock1.Protocol = sckTCPProtocol
mainForm.Winsock1.RemoteHost = IP_ADDRESS
mainForm.Winsock1.RemotePort = 80

blnConnectionError = False
mainForm.Winsock1.Connect
While Not blnConnected And Not blnConnectionError
    DoEvents
Wend

mainForm.Timer_Http_Timeout.Enabled = True
mainForm.Winsock1.SendData strHttp

如果问题发生后应用程序重新启动,它将在大约3个小时的其他时间内正常工作,这让我想/希望我可以在代码中做些什么来解决这个问题。

上述代码有什么可以担心防火墙吗?

任何想法为什么它只会在3小时后成为一个问题?

1 个答案:

答案 0 :(得分:3)

这是思科防火墙,因此您很可能会看到xlate超时(默认为3小时)或HTTP请求不符合HTTP RFC并被ASA / PIX的http检查引擎阻止的问题。您的应用程序是否打开一个TCP连接并在整个3小时内使用相同的连接?如果是这样,最简单的方法是让您的应用程序在指定的时间间隔内重新建立TCP连接。