Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

404 Custom Error in IIS 6.0 and ASPX doesnt work

I've created a 404 error page called 404.aspx which works fantastic when I call it manually. But after setting the "custom error" in web.config and IIS 6.0. It doesn't work properly.

for example, If I type the URL the wrong way, it won't work and a message like the one below, appears.

XML Parsing Error: not well-formed
Location: **http://domain/anything** (without an extension)
Line Number 1, Column 2:<%@ page language="C#" masterpagefile="~/Public.master" autoeventwireup="true" inherits="_404, App_We 

And, if I type the url like this: http://domain/anything.ASPX (ADDING THE .ASPX) at the end, it will redirect to the custom error 404.aspx correctly and works fine.

What can I do to make this work ?

like image 895
UXdesigner Avatar asked Oct 05 '10 21:10

UXdesigner


People also ask

How do I enable custom errors in IIS?

You can add custom error messages to IIS by adding an <error> element to the <httpErrors> element in the Web. config file for your site, application, or URL.

How do I redirect a custom error page in IIS?

Step 3: Open “Error Pages.” You can do this by double-clicking “Error Pages,” located in the home pane. Step 5: Enter the HTTP “Status Code.” When you see the dialog box “Add Custom Error Page,” enter “404” underneath “Status Code.” Step 6: Select “Execute a URL on this site,” located in the same dialog box.


2 Answers

Sounds like you've set the IIS custom error page type to File instead of Url.

Setting to File will just cause IIS to render the contents of your error page verbatim to the response stream (i.e. as a static file) instead of doing a HTTP redirect to the error page causing the page to be processed by ASP.NET.

IIS 6 requires that an 'Absolute URL within the site' to be entered if using the URL message type, for example:

/404.aspx

like image 55
Kev Avatar answered Oct 16 '22 18:10

Kev


I assume that your syntax is as follows:

<customErrors
       mode="RemoteOnly" 
       defaultRedirect="~/errors/GeneralError.aspx" 
/>

To see the custom page yourself set mode to "On"

<customErrors
       mode="On" 
       defaultRedirect="~/errors/GeneralError.aspx" 
/>

The modes are defined as follows:

  • On – error details are not shown to anybody, even local users. If you specified a custom error page it will be always used.
  • Off – everyone will see error details, both local and remote users. If you specified a custom error page it will NOT be used.
  • RemoteOnly – local users will see detailed error pages with a stack trace and compilation details, while remote users with be presented with a concise page notifying them that an error occurred. If a custom error page is available, it will be shown to the remote users only.
like image 2
tonythewest Avatar answered Oct 16 '22 18:10

tonythewest