I'm rather new to Mono and not exactly a linux guru so my issue may not be a bug but
instead user error. Basically, trying to build a test harness for getting performance
metrics of web requests. Wrote the code on windows, hoping Mono would be a viable
alternative for end users that wanted to use Linux. Initially structured with a
multi-threaded, asynchronous design, all worked well under windows but seemed to hang
on linux/mono, eventually reporting an exception.
Since then, I've simplified the code greatly to isolate the error:
using System;
using System.IO;
using System.Text;
using System.Net;
class Harness {
static void Main(string[] args) {
string url = "http://www.microsoft.com";
Console.WriteLine("Creating WebRequest...");
WebRequest request = WebRequest.Create(url);
Console.WriteLine("Retrieving WebResponse...");
WebResponse response = request.GetResponse();
StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.ASCII);
string line = null;
Console.WriteLine("Retrieving Stream...");
while( (line = sr.ReadLine()) != null) {
Console.WriteLine(line);
}
Console.WriteLine("I never reach this point");
sr.Close();
}
}
While simplifying, I initially tried using using a TextReader and ReadToEnd(). That,
too, seemed to just hang, eventually causing an exception. Using the above code showed
me that the response was coming across but that during the last readline (when null
should be expected) is when the hang occurs. So something about getting the last bit
of info I think.
Anyone else having this issue? Using a workaround or anything?
For further info, I am using SuSE 8.1 Pro and Mono .23. The exception i get is as
follows:
Unhandled Exception: System.IO.IOException: Read failure ---> System.IO.IOException:
Read failure ---> System.Net.Sockets.SocketException: Some sort of w32 error occurred
in (unmanaged) mono(mono_raise_exception+0x22) [0x81171f2]
in (unmanaged) mono(ves_icall_System_Net_Sockets_Socket_Receive_internal+0x85)
[0x8134e85]
in <0x000f7> 00 System.Net.Sockets.Socket:Receive
(byte[],int,int,System.Net.Sockets.SocketFlags)
in <0x00121> 00 System.Net.Sockets.Socket:Receive
(byte[],int,int,System.Net.Sockets.SocketFlags)
in <0x00145> 00 System.Net.Sockets.NetworkStream:Read (byte[],int,int)
--- End of inner exception stack trace ---
in <0x00188> 00 System.Net.Sockets.NetworkStream:Read (byte[],int,int)
in <0x00181> 00 .HttpWebResponseStream:Read (byte[],int,int)
--- End of inner exception stack trace ---
in <0x001c4> 00 .HttpWebResponseStream:Read (byte[],int,int)
in <0x00127> 00 System.IO.StreamReader:ReadBuffer ()
in <0x00088> 00 System.IO.StreamReader:Read ()
in <0x00049> 00 System.IO.StreamReader:ReadLine ()
in <0x0018d> 00 WebPlay.Harness:Main (string[])
Appreciate anyone's musings, experience, or confirmation as a bug.
Thanks,
Sean
_______________________________________________
Mono-list maillist - [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list