I don't know that this is the problem, but in your original post, I noticed this line:
stOut = new StreamWriter(req.GetRequestStream());
This line allocates a Stream object, and then wraps that into a StreamWriter. The StreamWriter is being disposed, but it's possible, since the Stream is not being explicitly closed and disposed, that something is holding a reference to the underlying Stream.
You could try managing object lifetime with using() statements:
using ( Stream responseStream = req.GetRequestStream() ) { using ( stOut = new StreamWriter(responseStream ) ) { stOut.Write(strNewValue); stOut.Close(); } }
Using is the equivalent of try {...} finally { <dispose object> }. So even if an exception is thrown, the object will be disposed, and the exception re-thrown.
It also makes it easier to see when objects are created/destroyed.
Hope that helps...