[Mono-dev] PR 1359: System.Web.HttpApplication: set StatusCode = 500 when we send an exception to the client

Etienne Champetier champetier.etienne at gmail.com
Fri Oct 24 12:25:56 UTC 2014


2014-10-24 13:53 GMT+02:00 Etienne Champetier <champetier.etienne at gmail.com>
:

> I know nothing about customerrors,
> but we are in the init so we may have fail to parse the config,
> so using customerror here is dangerous
>
>
> Exception e = initialization_exception;  HttpException exc =
> HttpException.NewWithCode (String.Empty, e,
> WebEventCodes.RuntimeErrorRequestAbort);  + context.Response.StatusCode =
> 500;  FinalErrorWrite (context.Response, exc.GetHtmlErrorMessage ());  PipelineDone
> ();  return;
>
> static void FinalErrorWrite (HttpResponse response, string error)  {  try
> {  response.Write (error);  response.Flush (true);  } catch {  response.
> Close ();  }  }
>
> The only think that i'm sure of is that we are sending an exception with
> http 200 :)
>
> I can replace 500 with exc.GetHttpCode() if you prefer?
>

Forget about this, this will send 501 Not Implemented, i prefer 500


>
>
> 2014-10-24 13:33 GMT+02:00 Martin Thwaites <martin at my2cents.co.uk>:
>
>> Does this need to take into account the customerrors setting in the
>> Web.config or is that handled further down the pipeline?
>> On 24 Oct 2014 09:57, "Etienne Champetier" <champetier.etienne at gmail.com>
>> wrote:
>>
>>> Hi,
>>>
>>> when we get an exception in InitOnce (in HttpApplication), we send this
>>> exception to the browser, without changing StatusCode so we get a wonderful
>>> http 200.
>>>
>>> I've checked and it's the only place where we call FinalErrorWrite and
>>> we didn't set StatusCode.
>>>
>>> https://github.com/mono/mono/pull/1359
>>>
>>> Bye
>>> Etienne
>>>
>>>
>>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ximian.com/pipermail/mono-devel-list/attachments/20141024/e16c9d11/attachment.html>


More information about the Mono-devel-list mailing list