How to simulate an HTTP 500 error on my ASP.NET app?
I want to simulate this error so I can check a generic error page is displayed, not the 开发者_C百科HTTP 500 one, in light of the recent security vulnerability.
We include special processing in the site itself for 404 and 403 so I want to make sure that errors without special processing work too.
throw new Exception();
This will generate a HTTP 500
I think you can do this by overriding page init and adding the 500 status code to the response like the following:
protected void Page_Init(object sender, EventArgs e)
{
Response.Clear();
Response.StatusCode = 500;
Response.End();
}
Enjoy!
Here's a way to do this without modifying your site in any way:
- From your web browser, open a page on your site that has a postback form.
- Press F12 to open developer tools.
- From the HTML tab, search for __VIEWSTATE and change the value in any way.
- Post to the form
This will cause a "Validation of viewstate MAC failed" ASP.Net Exception, which returns a 500 internal server error HTTP response code.
Breaking the web.config with a malformed tag also works, but defeats the purpose if you are trying to test some settings in your web.config (like Failed Request Tracing).
Change the name of your dll file. It will crash the app if you ask for a route afterwards because it won't find the controller. I used this to test my logging.
you can break the web.config file. Put a malformed tag for tests
This generate a custom http error code in classic asp.
<%@language=Jscript%>
<%
Response.Status = "996 TerraNova GeoWeb Internal Server Error";
Response.End;
%>
精彩评论