I’ve got this error and try to spend almost an hour to resolve this:
“the server committed a protocol violation section= responsestatusline” when I tried to get the response back from the payment gateway. It happens when you send HTTP Request one after another on the same page. The solution is to add unsafeheaderparsing to true in web.config and to seet keepAlive property to false from the http request it self
Web.Config
Calling Code:
Private Function SendXML(ByVal strSend As String) As Boolean Dim blnSuccess As Boolean = False Dim objSendXML As XmlDocument Dim objRequest As HttpWebRequest Dim mywriter As StreamWriter Dim objResponse As HttpWebResponse Dim objReturnedXML As XmlDataDocument Dim objElementRoot As XmlElement Dim objElementTransaction As XmlNode Dim objElementCreditCardInfo As XmlNode Dim x As XmlNode Dim strApproved As String = String.Empty Dim blnCreditCardInfo As Boolean = False ' Must reset the variable incase of error Me._Paid = False objSendXML = New XmlDocument objRequest = WebRequest.Create(strPaymentURL) 'if it is using proxy/behind proxy If (UseProxy And Not (String.IsNullOrEmpty(ProxyServer))) Then objRequest.Proxy = New System.Net.WebProxy(ProxyServer, True) 'if there is credential If (UseDefaultCredential) Then objRequest.Proxy.Credentials = CredentialCache.DefaultCredentials Else objRequest.Proxy.Credentials = New NetworkCredential(UserName, Password) End If End If objRequest.Method = "POST" objRequest.ContentLength = strSend.Length objRequest.ContentType = "text/xml" 'to solve protocol violation problem objRequest.KeepAlive = False
Leave a Reply