Solved

Winforms WebClient.UploadFile() error (System.NotSupportedException)

Posted on 2010-08-13
4
1,737 Views
Last Modified: 2013-11-26
I am simply trying to upload a file to a URL and the following error message is generated:

System.Net.WebException: An exception occurred during a WebClient request. ---> System.NotSupportedException: The stream does not support concurrent IO read or write operations.
   at System.Net.ConnectStream.InternalWrite(Boolean async, Byte[] buffer, Int32 offset, Int32 size, AsyncCallback callback, Object state)
   at System.Net.ConnectStream.Write(Byte[] buffer, Int32 offset, Int32 size)
   at System.Net.WebClient.UploadBitsState.WriteBytes()
   at System.Net.WebClient.UploadBits(WebRequest request, Stream readStream, Byte[] buffer, Byte[] header, Byte[] footer, CompletionDelegate completionDelegate, AsyncOperation asyncOp)
   at System.Net.WebClient.UploadFile(Uri address, String method, String fileName)
   --- End of inner exception stack trace ---
   at System.Net.WebClient.UploadFile(Uri address, String method, String fileName)
   at BREN_iTropics_001.frmUnifiedXML.simpleDataUpload() in frmUnifiedXML.cs:line 61

The offending line is:

byte[] Byte_response = wClient.UploadFile(url, "POST",filename);

can someone see the problem?
private void simpleDataUpload()

{

    try

    {

        Uri url = new Uri(this.txtFTPServer.Text);

        WebClient wClient = new WebClient();

        NetworkCredential nc = new NetworkCredential("login", "pass");

        wClient.Credentials = nc;

        byte[] Byte_response = wClient.UploadFile(url, "POST", filename);



        wClient.UploadProgressChanged += new UploadProgressChangedEventHandler(wClient_UploadProgressChanged);

        wClient.UploadFileCompleted += new UploadFileCompletedEventHandler(wClient_UploadFileCompleted);



        if (Byte_response != null)

        {

            this.txtMsg.Text += System.Text.Encoding.ASCII.GetString(Byte_response);

        }

    }

    catch (Exception ex)

    {

        this.txtMsg.Text += ex.ToString() + Environment.NewLine;

    }

}



void wClient_UploadProgressChanged(object sender, UploadProgressChangedEventArgs e)

{

    this.txtLastResult.Text = "Sent:" + e.BytesSent.ToString() + "  Total:"

                        + e.TotalBytesToSend.ToString() + "   Progress:"

                        + e.ProgressPercentage.ToString() + "%";

}

Open in new window

0
Comment
Question by:conrad2010
  • 2
4 Comments
 
LVL 7

Expert Comment

by:Gewgala
ID: 33434698
Are you sure you have correct credentials?
0
 
LVL 7

Expert Comment

by:Gewgala
ID: 33434701
And if you have correct credentials, are you sure you have sufficient privileges to perform your upload with them?
0
 
LVL 3

Accepted Solution

by:
bkokx earned 500 total points
ID: 33435351
Problem might be in your "POST" argument.
POST is used for HTTP while for FTP this should be STOR.
These defaults are chosen by the function if you do not specify the argument.
0
 

Author Comment

by:conrad2010
ID: 33438406
yes, the credentials are correct and I have permission to store (tested it in a browser upload version)

-C
0

Featured Post

What Security Threats Are You Missing?

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

Suggested Solutions

In my previous two articles we discussed Binary Serialization (http://www.experts-exchange.com/A_4362.html) and XML Serialization (http://www.experts-exchange.com/A_4425.html). In this article we will try to know more about SOAP (Simple Object Acces…
It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
It is a freely distributed piece of software for such tasks as photo retouching, image composition and image authoring. It works on many operating systems, in many languages.
This video discusses moving either the default database or any database to a new volume.

746 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

13 Experts available now in Live!

Get 1:1 Help Now