Hello, I figured out what was wrong. If the Http request has no content then trying to access the Request.Inputstream fails. So the following code works:
... public void ProcessRequest(HttpContext context) { try { string _request = string.Empty; if (this._context.Request.ContentLength>0) { StreamReader _streamReader = new StreamReader(context.Request.InputStream); _request = _streamReader.ReadToEnd(); } this._context = context; this.RequestRouter(); } catch { throw; } } ... The IF..THEN is not neccessary in .Net 1.1. Regards, Peter Op Wednesday 14 September 2005 23:32, schreef Peter: > 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 > _______________________________________________ > Mono-list maillist - Mono-list@lists.ximian.com > http://lists.ximian.com/mailman/listinfo/mono-list _______________________________________________ Mono-list maillist - Mono-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-list