http://bugzilla.novell.com/show_bug.cgi?id=577818
http://bugzilla.novell.com/show_bug.cgi?id=577818#c0 Summary: WebClient.UploadStringAsync always throws NotImplementedException Classification: Mono Product: Mono: Class Libraries Version: SVN Platform: Other OS/Version: Other Status: NEW Severity: Normal Priority: P5 - None Component: System AssignedTo: [email protected] ReportedBy: [email protected] QAContact: [email protected] Found By: --- Blocker: --- This is a translation of reported bug from http://irc.gimite.net/channel/mono-jp/archive/20100206 http://smdn.invisiblefulmoon.net/misc/forum/programming/#n13 (The summary explains it.) // ---- repro ---- using System; using System.Net; class MainClass { public static void Main(string[] args) { using (var client = new WebClient()) { client.UploadStringCompleted += delegate(object sender, UploadStringCompletedEventArgs e) { if (e.Error != null) Console.WriteLine(e.Error); }; client.UploadStringAsync(new Uri("http://localhost/"), "hoge"); System.Threading.Thread.Sleep(500); } } } Actual result: System.Net.WebException: An error occurred performing a WebClient request. ---> System.NotSupportedException: WebClient does not support conccurent I/O operations. at System.Net.WebClient.CheckBusy () [0x00016] in /srv/files/build/mono/trunk/mcs/class/System/System.Net/WebClient.cs:226 at System.Net.WebClient.SetBusy () [0x00008] in /srv/files/build/mono/trunk/mcs/class/System/System.Net/WebClient.cs:231 at System.Net.WebClient.UploadData (System.Uri address, System.String method, System.Byte[] data) [0x00028] in /srv/files/build/mono/trunk/mcs/class/System/System.Net/WebClient.cs:520 --- End of inner exception stack trace --- at System.Net.WebClient.UploadData (System.Uri address, System.String method, System.Byte[] data) [0x00053] in /srv/files/build/mono/trunk/mcs/class/System/System.Net/WebClient.cs:528 at System.Net.WebClient.UploadString (System.Uri address, System.String method, System.String data) [0x00028] in /srv/files/build/mono/trunk/mcs/class/System/System.Net/WebClient.cs:840 at System.Net.WebClient.<UploadStringAsync>m__13 (System.Object state) [0x00007] in /srv/files/build/mono/trunk/mcs/class/System/System.Net/WebClient.cs:1412 Proposed fix: WebClient.UploadStringAsync() calls SetBusy(), and UploadData(), which is called by UploadStringAsync() calls SetBusy() again. That's the cause of the issue. Call CheckBusy() instead. Index: System/System.Net/WebClient.cs =================================================================== --- System/System.Net/WebClient.cs (revision 150935) +++ System/System.Net/WebClient.cs (working copy) @@ -1402,7 +1402,7 @@ throw new ArgumentNullException ("data"); lock (this) { - SetBusy (); + CheckBusy (); async = true; async_thread = new Thread (delegate (object state) { -- Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. You are the assignee for the bug. _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
