Вы не показали бит кода, который пытается использовать длину - но в основном вам не гарантируется, что вы будете знать длину потока.Сервер, возможно, не дал заголовок длины содержимого.
Если вам нужно возиться с потоком, вероятно, лучше просто скопировать все данные в MemoryStream
.С .NET 4 это действительно просто:
MemoryStream ms = new MemoryStream();
responseStream.CopyTo(ms);
Если вам не нужна длина для чего-либо (например, вы просто хотите загрузить результаты в виде XML-документа), просто читайте из потока безвызов Length
.
Обратите внимание, что, как правило, рекомендуется объявлять переменные в точке инициализации, если это возможно, и вы должны использовать операторы using
для веб-ответа и потока ответов.