How to keep connection alive when using webrequest?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Colin Rodrigues
    New Member
    • Dec 2010
    • 16

    How to keep connection alive when using webrequest?

    string strURL = (Request.IsSecu reConnection ? "https://website.com/Transaction.asm x" : "http://website.com/wTransaction.as mx");

    string strCommand = clsMisc.strGetD ataFromPage(thi s, "c", "", PostMethod.BOTH );
    string strAppCode = clsMisc.strGetD ataFromPage(thi s, "a", "WEBIN", PostMethod.BOTH );
    string strVenueCode = clsMisc.strGetD ataFromPage(thi s, "v", "", PostMethod.BOTH );
    long transcationid= long.Parse(clsM isc.strGetDataF romPage(this, "t", "0", PostMethod.BOTH ));
    string strParam1 = clsMisc.strGetD ataFromPage(thi s, "p1", "", PostMethod.BOTH );
    string strParam2 = clsMisc.strGetD ataFromPage(thi s, "p2", "", PostMethod.BOTH );
    string strParam3 = clsMisc.strGetD ataFromPage(thi s, "p3", "", PostMethod.BOTH );
    string strParam4 = clsMisc.strGetD ataFromPage(thi s, "p4", "", PostMethod.BOTH );

    StringBuilder sbrPost = new StringBuilder() ;

    string strIPAddress = Request.UserHos tAddress.ToStri ng();
    if (Request.Header s.ToString().Co ntains("&X-Forwarded-For="))
    {
    strIPAddress = Request.Headers["X-Forwarded-For"].ToString();
    }
    strAppCode = "|APPCODE=" + strAppCode + "|IPADDRESS =" + strIPAddress + "|";

    //strAppCode = "|APPCODE=" + strAppCode + "|IPADDRESS =" + Request.UserHos tAddress.ToStri ng() + "|";

    sbrPost.Append( "<?xml version=\"1.0\" encoding=\"utf-8\"?>");
    sbrPost.Append( "<soap12:Envelo pe xmlns:xsi=\"htt p://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"htt p://www.w3.org/2001/XMLSchema\" xmlns:soap12=\" http://www.w3.org/2003/05/soap-envelope\"><soa p12:Body><objEx ecute xmlns=\"http://www.website.com/\">");
    sbrPost.Append( "<strAppCod e>" + strAppCode + "</strAppCode>");
    sbrPost.Append( "<lngTransactio nIdentifier>" + lngTransId + "</lngTransactionI dentifier>");
    sbrPost.Append( "<strComman d>" + strCommand + "</strCommand>");
    sbrPost.Append( "<strParam1 >" + strParam1 + "</strParam1>");
    sbrPost.Append( "<strParam2 >" + strParam2 + "</strParam2>");
    sbrPost.Append( "<strParam3 >" + strParam3 + "</strParam3>");
    sbrPost.Append( "<strParam4 >" + strParam4 + "</strParam4>");
    </objExecute></soap12:Body></soap12:Envelope >");
    string strPost = sbrPost.ToStrin g();

    WebRequest objReq = WebRequest.Crea te(strURL);
    WebResponse objRes;
    StreamReader smrRes;

    byte[] bytData = Encoding.UTF8.G etBytes(strPost );
    objReq.Method = "POST";
    objReq.ContentT ype = "applicatio n/soap+xml";
    objReq.ContentL ength = bytData.Length;
    objReq.Timeout = 600000; // 10 minutes
    Stream objPost = objReq.GetReque stStream();
    objPost.Write(b ytData, 0, bytData.Length) ;
    objPost.Close() ;
    objRes = objReq.GetRespo nse();
    smrRes = new StreamReader(ob jRes.GetRespons eStream());
    Response.Write( smrRes.ReadToEn d());
    Response.Conten tType = "text/xml";
    smrRes.Close();
    Response.End();
    }
    catch (Exception err)
    {
    clsLog.blnLogEr ror(strErrorPag e,strErrorMetho d, "",err.Message) ;
    }
    }


    I get an error on da line objPost.Close() ;.....the unusual error is that when I debug this code line by line slowly using F10 in visual studio 2010...the code works..but when I just run the program or even debug the program fast...it throws an error at that line.. it gives an error that the connection which was expected to be open was closed by the server..

    HELLLLPPP!!!
Working...