httperrors vs customerrors in webconfig , iis, asp.net

Errors section in web config is for providing custom http error handling approach there are two section, one customErrors inside the section system.web and another httpErrors inside the section system.webServer (as given below)

There is much confusion between custom error and http error sections that IIS pick up setting from which section customErrors section or from httpErrors section, below are the explanation.

<customErrors> :

This section was in use before IIS 7 introduced, IIS 6 5 and before fully use this section for handling custom http errors according to http status code.

<httpErrors> :

IIS 7 and later use this section as well as <customErrors> section to handle custom http errors based on their file extensions if requested page extension register with ISAPI dll (.aspx, ashx, .asmx, .svc etc) like index.aspx then IIS pick up setting from <customeErrors> section else it pick up setting from <httpErrors> (IIS 7 hosted mode must be set as integrated mood not classic)

below are the examples that is for 404 error handling :

if you are requesting for any aspx or ashx file that is not exists then it shows following default customError page (set yours in customError section to change it)

custom errors section in web config :

<system.web>
   <customErrors mode="On" redirectMode="ResponseRedirect">
      <error redirect="/classifieds/page-not-found.aspx" statusCode="404" />
   </customErrors>

Default 404 page in iis 6, iis 5 or before in asp.nett
Default 404 page in iis 6, iis 5 or before

if you are requesting for any other than registered extension that is not exists like index.sadf then it shows following default httpErrors page (set yours in httpErrors section to change it)

http errors section in web config :

<system.webServer>
   <httpErrors errorMode="Custom">
    <remove statusCode="404" subStatusCode="-1" />
    <error path="/404.aspx" prefixLanguageFilePath="" responseMode="ExecuteURL" statusCode="404" />
  </httpErrors>

Default 404 page in iis7 or later in asp.net
Default 404 page in iis7 or later



Popular Posts