DNN Custom Error Page Issue - asp.net

I am working on DNN 7.0. I create a ErrorPage.aspx and set it as defaultredirect and another page 404error.aspx and set it with the status code 404.
now if i access the website like
www.abc.com/testing.aspx , and testing.aspx donot exists, it takes me to 404error.aspx page
then i try to access my website by
www.abc.com/testing , now it is showing that ugly asp.net error.
need some assistance what am i doing wrong, or what i am missing.
Thanks

Got it working.
In web.config implemented httpErrors and CustomErros tag
like
<httpErrors errorMode="Custom">
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" path="/404Error.aspx" responseMode="ExecuteURL" />
</httpErrors>
and
<customErrors mode="On" defaultRedirect="/CustomErrorPage.aspx">
</customErrors>

Related

custom error page for asp,net webforms does not work for html page

Hi I set the custom error page settings in my aspx web.config file. it works fine if the page url is of extension aspx but if I type an incorrect url without extension or with .html extension then it is not routed to my customer error page (404). The site is hosted as azure app service to note. What am I missing? Should I configure something in azure app service settings? Thank you for your help
Hi, I updated the web. config as follows and it seems to work. However, when I try to check if the 404 custom error page is set up correctly by using SEO checkup tools, it shows that we have no 404 custom error pages. What am I missing? I appreciate your help. Do I need to specify error page url extension like .aspx? or do I need to update anything on my robot.txt?
<system.web>
<httpErrors errorMode="Custom" defaultResponseMode="ExecuteURL">
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" path="/page-unavailable" responseMode="ExecuteURL" />
</httpErrors>
</system.web>
<system.webServer>
<httpErrors errorMode="Custom" defaultResponseMode="ExecuteURL">
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" path="/page-unavailable" responseMode="ExecuteURL" />
</httpErrors>
<rewrite>
</system.webServer>

Custom 404 not displaying

I have a webforms project that I've made a custom 404 page for.
I've written my redirect in my web.config but it doesn't seem to be working.
Here is the code
<customErrors mode="On" redirectMode="ResponseRedirect">
<error statusCode="404" redirect="~/404.aspx"/>
</customErrors>
When I visit localhost:(port number)/about I'm taken to the about page. When I visit the same thing but spell 'about' incorrectly, I'm taken to the default 404 page
What am I missing?
Custom errors handles aspx pages. You can remove/comment your customErrors section and use httpErrors like this instead:
<system.webServer>
<httpErrors existingResponse="Replace" errorMode="Custom">
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" path="404.aspx" responseMode="Redirect" />
</httpErrors>
</system.webServer>
Reference: HTTP Errors

Can I tell IIS 8.5 to return a 404 when using httpErrors?

I'm working on a (Web Forms) site running on IIS 8.5 and am currently setting up error handling for 404s and 500s.
I already have the system.web > customErrors setup, but since we're running in Integrated mode/newer version of IIS it's pulling from system.webServer > httpErrors.
Using the IIS GUI I opted to replace the standard IIS error pages with a static HTML file, on the site:
<httpErrors errorMode="Custom">
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" prefixLanguageFilePath=""
path="/problem.html" responseMode="ExecuteURL" />
<remove statusCode="500" subStatusCode="-1" />
<error statusCode="500" prefixLanguageFilePath=""
path="/problem.html" responseMode="ExecuteURL" />
</httpErrors>
Unfortunately, while the correct error page is displayed, instead of a returning a 404 a 200 is returned, and a 302 followed by a 200 is returned for 500 errors.
For older versions of IIS, or those not running in Integrated mode, you could set redirectMode="ResponseRewrite" on the customErrors element and that would resolve this issue.
I've tried setting existingResponse on httpErrors to all three available options, as well as tried updating setting responseMode="File", but these changed nothing.
Is there any way to do something similar for the httpErrrors element? Or am I stuck with pointing the errors to an ASP.NET page and returning the appropriate error from there?
Thanks!
To solve this, you can set this configuration into the <httpErrors> in your WebConfig file. Like this:
<system.webServer>
<httpErrors errorMode="Custom" existingResponse="Replace">
<clear/>
<error statusCode="404" path="/WebForms/Index.aspx" responseMode="File"/>
</httpErrors>
<system.webServer/>
The responseMode=File will preserve the original error code, and show the static page.

Implementing a Custom Error page on an ASP.Net website

I have an ASP.Net website and I want to use a custom error page. I put the following code in my web.config
<customErrors mode="On" defaultRedirect="~/error.aspx">
<error statusCode="404" redirect="~/error.aspx" />
</customErrors>
The problem is when i go to a URL that does not exist is still uses the 404 error page specified in IIS Manager.
Question: How can I make it use the error.aspx page I have created? Why do the settings in IIS Manager override the web.config?
Try this way, almost same.. but that's what I did, and working.
<configuration>
<system.web>
<customErrors mode="On" defaultRedirect="apperror.aspx">
<error statusCode="404" redirect="404.aspx" />
<error statusCode="500" redirect="500.aspx" />
</customErrors>
</system.web>
</configuration>
or try to change the 404 error page from IIS settings, if required urgently.
There are 2 ways to configure custom error pages for ASP.NET sites:
Internet Information Services (IIS) Manager (the GUI)
web.config file
This article explains how to do each:
How To Set Up Custom Error Pages In IIS 7.5 With ASP.NET
The reason your error.aspx page is not displaying might be because you have an error in your web.config. Try this instead:
<configuration>
<system.web>
<customErrors defaultRedirect="error.aspx" mode="RemoteOnly">
<error statusCode="404" redirect="error.aspx"/>
</customErrors>
</system.web>
</configuration>
You might need to make sure that Error Pages in IIS Manager - Feature Delegation is set to Read/Write:
Also, this answer may help you configure the web.config file:
What is the difference between customErrors and httpErrors?
<customErrors defaultRedirect="~/404.aspx" mode="On">
<error statusCode="404" redirect="~/404.aspx"/>
</customErrors>
Code above is only for "Page Not Found Error-404" if file extension is known(.html,.aspx etc)
Beside it you also have set Customer Errors for extension not known or not correct as
.aspwx or .vivaldo. You have to add httperrors settings in web.config
<httpErrors errorMode="Custom">
<error statusCode="404" prefixLanguageFilePath="" path="/404.aspx" responseMode="Redirect" />
</httpErrors>
<modules runAllManagedModulesForAllRequests="true"/>
it must be inside the <system.webServer> </system.webServer>
<system.webServer>
<httpErrors errorMode="DetailedLocalOnly">
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" prefixLanguageFilePath="" path="your page" responseMode="Redirect" />
</httpErrors>
</system.webServer>
Is it a spelling error in your closing tag ie:
</CustomErrors> instead of </CustomError>?

Why are custom error pages not working for 404 errors

I have set up a page to handle errors that occur in a website I work on using web.config. I have used the customErrors section in web.config to do this, as described here
Here is the relevant section
<customErrors mode="On" defaultRedirect="page.aspx?IDDataTreeMenu=357">
<error statusCode="403" redirect="page.aspx?IDDataTreeMenu=357"/>
<error statusCode="404" redirect="page.aspx?IDDataTreeMenu=357" />
</customErrors>
This seems to work for all errors except 404. I just get the standard IIS 404 error when accessing a URL that doesn't exist.
What am I missing here?
This site is hosted on a shared server, so changing settings in IIS is not an option
Check with the ISP and see if they have a place where you can insert a reference to your own custom 404 page.
At Network Solutions they give you a control panel and a page where you can set this up.
<httpErrors>
<clear />
<error statusCode="404" subStatusCode="-1" path="/404.asp" responseMode="ExecuteURL" />
</httpErrors>

Resources