If you do:
Response.StatusCode = 503;
from an ASP.NET request, you will most likely get a response that looks like this:
HTTP/1.1 503 Service Unavailable Cache-Control: private Content-Type: text/html X-Powered-By: ASP.NET Date: Mon, 27 Sep 2010 17:23:20 GMT Content-Length: 27 The service is unavailable.
I.E. “The service is unavailable” is the only content returned, regardless of what your response contained. This is because http.sys in IIS is overriding your response with default custom error behaviour. Great. Fix it like this:
Response.StatusCode = 503; Response.TrySkipIisCustomErrors = true;
You can then return whatever content you like