[Mono-list] Request.InputStream exception

Peter petervyvey at village.uunet.be
Wed Sep 14 17:16:34 EDT 2005


Hello,

I am trying to implement an IHttpHandler, using the following code to read the content of the request:

...

public void ProcessRequest(HttpContext context) 
{ 
	try 
	{
		StreamReader _streamReader = new StreamReader(context.Request.InputStream); 
		string _request = _streamReader.ReadToEnd(); 
		this._context = context; 
		this.RequestRouter(); 
	} 
	catch 
	{ 
		throw; 
	} 
}

...

I get an exception:

Error Message: HTTP 500.

Stack Trace:

System.IO.IOException: Read failure

Server stack trace: 
in <0x000c3> System.Net.Sockets.NetworkStream:Read (System.Byte[] buffer, Int32 offset, Int32 size)
in <0x00095> System.IO.BinaryReader:Read (System.Byte[] buffer, Int32 index, Int32 count)
in <0x00075> Mono.WebServer.ModMonoRequest:GetClientBlock (System.Byte[] bytes, Int32 position, Int32 size)
in <0x00019> Mono.WebServer.ModMonoWorker:Read (System.Byte[] buffer, Int32 position, Int32 size)
in <0x001aa> Mono.WebServer.BaseRequestBroker:Read (Int32 requestId, Int32 size, System.Byte[] buffer)
in (wrapper remoting-invoke-with-check) Mono.WebServer.BaseRequestBroker:Read (int,int,byte[]&)
in (wrapper xdomain-dispatch) Mono.WebServer.BaseRequestBroker:Read (object,byte[]&,byte[]&,int,int,byte[]&)

Exception rethrown at [0]: 
 ---> System.Net.Sockets.SocketException: Operation on non-blocking socket would block
in <0x0006d> System.Net.Sockets.Socket:Receive_nochecks (System.Byte[] buf, Int32 offset, Int32 size, SocketFlags flags)
in <0x00053> System.Net.Sockets.Socket:Receive (System.Byte[] buf, Int32 offset, Int32 size, SocketFlags flags)
in <0x00075> System.Net.Sockets.NetworkStream:Read (System.Byte[] buffer, Int32 offset, Int32 size)--- End of inner exception stack trace ---

in (wrapper xdomain-invoke) Mono.WebServer.BaseRequestBroker:Read (int,int,byte[]&)
in (wrapper remoting-invoke-with-check) Mono.WebServer.BaseRequestBroker:Read (int,int,byte[]&)
in <0x0003d> Mono.WebServer.ModMonoWorkerRequest:ReadEntityBody (System.Byte[] buffer, Int32 size)
in <0x00326> System.Web.HttpRequest:MakeInputStream ()
in <0x00013> System.Web.HttpRequest:get_InputStream ()
in <0x00028> HttpRequestDemo.RequestHandler:RequestRouter ()

I think it is while accessing 'context.Request.InputStream'. This code works under .Net framework 1.1. Does anyone have an idea what is wrong ?

Regards,

Peter


More information about the Mono-list mailing list