Solved

HTTPWebResponse Error: Unable to read data from the transport connection

Posted on 2009-05-19
2
2,654 Views
Last Modified: 2013-12-17
I have some code for uploading a file to a HTTPS server.  The code works great for files up to about 150 MB (not sure of the exact cutoff).   But when the files get bigger than that, then I get the following exception:

    "Unable to write data to the transport connection:  An existing connection was forcibly
    closed by the remote host"

    The BaseException is:  "Unable to read data from the transport connection"


Other users (outside our network) can already successfully upload files up to almost 1 GB with no problems...  it just my code that's not working...

I've searched the internet for hours and haven't found the answer.  Please help. Thanks!

VBRocks

'This the core code from a dll class that works with a windows form.
 

        'Get the length of the selected file

        Dim fi As IO.FileInfo = My.Computer.FileSystem.GetFileInfo(filePath)

        Dim fileLength As Long = fi.Length
 

        'Create the request

        Dim request As HttpWebRequest = _

            DirectCast(HttpWebRequest.Create(address), HttpWebRequest)
 

        'Configure request

        request.Credentials = New System.Net.NetworkCredential("UserName", "Password")
 

        request.Method = WebRequestMethods.Http.Put

        request.KeepAlive = True

        request.Timeout = -1

        request.ContentLength = fileLength.ToString()
 

         'This is required for our WebDav server 

         request.SendChunked = True

         request.Headers.Add("Translate: f")

         request.AllowWriteStreamBuffering = True
 

         Dim s As IO.Stream = request.GetRequestStream()
 

        Dim fs As New IO.FileStream(filePath, IO.FileMode.Open, IO.FileAccess.Read)

        Dim byteTransferRate As Integer = 1024     

        Dim bytes(byteTransferRate - 1) As Byte        

        Dim bytesRead As Integer = 0

        Dim totalBytesRead As Long = 0
 

        Do

            bytesRead = fs.Read(bytes, 0, bytes.Length)
 

            If bytesRead > 0 Then
 

                totalBytesRead += bytesRead
 

                'Write to stream

                s.Write(bytes, 0, bytesRead)
 

            End If
 

        Loop While bytesRead > 0
 

        s.Close()

        s.Dispose()

        s = Nothing
 

        fs.Close()

        fs.Dispose()

        fs = Nothing
 
 

         'It basically hangs here for over 10 minutes and then produces the error.

         Dim response As HttpWebResponse = DirectCast(request.GetResponse(), _

             HttpWebResponse)

Open in new window

0
Comment
Question by:VBRocks
  • 2
2 Comments
 
LVL 27

Author Comment

by:VBRocks
ID: 24426880
Oops... The base exception is:

    "An existing connection was forcibly closed by the remote host"

0
 
LVL 27

Accepted Solution

by:
VBRocks earned 0 total points
ID: 24503697
Alas...  I found the answer.  I thought it was hopeless, and had to be abandoned.  But it was not hopeless.  I was able to use the following article to make it work:

     http://support.microsoft.com/kb/908573

If you're having the same or similar problem, find out exactly what type of authentication your server is requiring (ie.:  Basic, Digest, Kerberos, Negotiate, NTLM), and then be patient and work through this Miscroft Support page.  It will help you solve your problem, and you will still be able to use the HttpWebRequest class.

0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction HyperText Transfer Protocol (http://www.ietf.org/rfc/rfc2616.txt) or "HTTP" is the underpinning of internet communication.  As a teacher of web development I have heard many questions, mostly from my younger students who have come to t…
A Change in PHP Behavior with Session Write Short Circuit (http://php.net/manual/en/book.session.php#116217) (Winter 2014)** With the release of PHP 5.6 the session handler changed in a way that many think should be considered a bug.  See the note …
This video shows how to remove a single email address from the Outlook 2010 Auto Suggestion memory. NOTE: For Outlook 2016 and 2013 perform the exact same steps. Open a new email: Click the New email button in Outlook. Start typing the address: …
This video explains how to create simple products associated to Magento configurable product and offers fast way of their generation with Store Manager for Magento tool.

943 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now