The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure

J

Joel Barsotti

I'm working on shipping rate calculator going back and forth via XML. The
thing I'm confused about is that the code works, but after a few hours and I
don't know how many requests, I start getting the error "The underlying
connection was closed: Could not establish trust relationship for the
SSL/TLS secure channel." I can't imagine UPS's certificate is bad.

Here's my code, let me know if you see any glaring issues.

HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(upsRateUri);
myReq.Headers.Clear();
myReq.Method = "POST";
myReq.ContentType = "application/x-www-form-urlencoded";
myReq.ContentLength = xmlString.Length;
StreamWriter sendingData = new StreamWriter(myReq.GetRequestStream());
sendingData.Write(xmlString);
sendingData.Close();
WebResponse myResponse = myReq.GetResponse();
 
G

George Ter-Saakov

My guess would be that you do not close Streams/Requests properly and at
some time system runs out of them.
Be very careful with lines like that
StreamWriter sendingData = new StreamWriter(myReq.GetRequestStream());

That is big problem with .NET (unfortunately). No ownership. Who is
responsible for closing the Stream returned by myReq.GetRequestStream().

Who told you that StreamWrite will close the underlying Stream? Actually my
feeling from documentation it will not. All it will do just Flush own
buffers and resets it's state.

Again, i am not sure that this is your problem but usually if something
works for couple hours and then stops that means you run out of some kind of
system resources.


George
 
C

carion1

HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(upsRateUri);
myReq.Headers.Clear();
myReq.Method = "POST";
myReq.ContentType = "application/x-www-form-urlencoded";
myReq.ContentLength = xmlString.Length;

using(StreamWriter sendingData = new
StreamWriter(myReq.GetRequestStream()))
{
sendingData.Write(xmlString);
sendingData.Flush();
}

WebResponse myResponse = myReq.GetResponse();
 
J

Joel Barsotti

nope

HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(upsRateUri);
myReq.Headers.Clear();
myReq.Method = "POST";
myReq.ContentType = "application/x-www-form-urlencoded";
myReq.ContentLength = xmlString.Length;
using (StreamWriter sendingData = new
StreamWriter(myReq.GetRequestStream()))
{
sendingData.Write(xmlString);
sendingData.Flush();
sendingData.Close();
}

WebResponse myResponse = myReq.GetResponse();
StreamReader responseStream = new StreamReader
(myResponse.GetResponseStream());
XmlDocument shippingXml = new XmlDocument();
shippingXml.LoadXml(responseStream.ReadToEnd());

responseStream.Close();
myResponse.Close();Still getting the "The underlying connection was closed: Could not establish
trust relationship for the SSL/TLS secure channel" error message, after a
period of time.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,764
Messages
2,569,565
Members
45,041
Latest member
RomeoFarnh

Latest Threads

Top