I can't get ANY custom error pages to appear in IIS8.5!
When I run my MVC 5 app locally in Visual Studio, custom error pages are displayed. But when I deploy to IIS on my webserver, and navigate to the site sub-page with a 'bad URL' my custom 404 page should be displayed, but the default generic 404 page is shown instead.
Here is what I've done:
web.config
customError section has been deleted.
Added the following section
<system.webServer> <httpErrors errorMode="Custom" existingResponse="Replace"> <remove statusCode="404" /> <remove statusCode="500" /> <error statusCode="404" responseMode="ExecuteURL" path="/Error/NotFound" /> <error statusCode="500" responseMode="ExecuteURL" path="/Error/ServerError" /> </httpErrors> </system.webServer> Controller
namespace MyApp.Controllers { [Authorize(Roles = "MyRole")] public class ErrorController : Controller { [AllowAnonymous] public ActionResult NotFound() { Response.StatusCode = 404; return View(); } [AllowAnonymous] public ActionResult ServerError() { Response.StatusCode = 500; return View(); } } } Views
Very simple and straight forwards (not included here).
IIS
Verified the IIS Error Page feature is identical to what's in my config. A page for each error status code. Feature and Pages are set to 'custom'.
Checked Windows Features\Web Server (IIS)\Web Server\Common HTTP Features\HTTP Errors is installed.
Developer Tools
Navigating to a sub-page spelt incorrectly shows I'm getting a 404 Client Error.
Help
I've tries many things! Am I missing something? IIS environmental issue, i.e. a setting somewhere?
Custom errors work in my IDE but not on IIS. I've spent over a day on this! Read many pages, articles, and similar questions on SO.