• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 488
  • Last Modified:

is this ok to do? - Filenotfound.aspx and master page

i'm working on an asp.net app that has a FileNotFound.aspx for error 404. This is attached to a Master page and this master page is on every page.

I ran a .net porfiler and it shows this filenotfoundpage..trying to be rendered or being called. Whatever it was, it showed it as one of the bottlenecks.

I created a new filenotfound.aspx with no master page. And profiler showed it as less bottlneck.

Is this normal to create filenotfound.aspx with master page? why is the profiler shows this aspx page as being loaded or called..is it because it's attached to the master page??

<customErrors mode="Off" defaultRedirect="~/Error.aspx">
			<error statusCode="404" redirect="~/FileNotFound.aspx"/>
			<error statusCode="500" redirect="~/Error.html"/>
		</customErrors>

Open in new window

0
Camillia
Asked:
Camillia
  • 5
  • 4
1 Solution
 
Gary DavisDir Internet SvcsCommented:
Hopefully your FileNotFound.aspx is not called much. If it is, you probably have something on your pages like a broken image/css/js causing it to be called a lot. Have the FileNotFound.aspx page log why it is being called - what request is causing the 404? That will help you pinpoint the issue. I assume it is OK to have a FNF page use Master Pages.

Gary Davis
0
 
CamilliaAuthor Commented:
>>Have the FileNotFound.aspx page log why it is being called
How can I do that??

>> If it is, you probably have something on your pages like a broken image/css/js causing it to be called a lot.

How so? how is this related to FNF being called? so, maybe something is missing in that master page that this FNF uses??
0
 
Gary DavisDir Internet SvcsCommented:
I think the FNF will be entered with a querystring containing the failing url.

Even page components will fire off the FNF page even though the user may never see them (only if the main page itself is not found).

Yes, if the Master page tries to get a css file (for example) that causes a 404 Not Found, every page that uses that Master page will generate one call to the FNF.

Gary
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
CamilliaAuthor Commented:
>> Yes, if the Master page tries to get a css file (for example) that causes a 404 Not Found, every page that uses that Master page will generate one call to the FNF.

 I get this. Makes sense. Thanks. I thought 404 is for when an aspx pages are not found.

>> I think the FNF will be entered with a querystring containing the failing url.
Not sure what this means. I should enter http://localhost/whateversite/filenotfound.aspx ?

0
 
Gary DavisDir Internet SvcsCommented:
You should modify filenotfound.aspx to write it's querystring somewhere or perhaps check the web logs; maybe it's there already. Then when the aspx page runs for the 404's you can check the logs to see what's causing it.
0
 
CamilliaAuthor Commented:
sorry gary, i know i'm beating this one to death...can u give me  an example?
0
 
Gary DavisDir Internet SvcsCommented:
This is FileNotFound.aspx. The errors come into this page with QueryString["aspxerrorpath"] set to the Url causing the 404 Not Found. This is written to a log file with a timestamp and the Referrer so you can see the referring page that caused the error.

This is an example:

  http://localhost:50262/FileNotFound.aspx?aspxerrorpath=/Missing.aspx

The is what is written to the Errors.log:

  6/14/2008 9:42:28 AM - File Not Found: /Missing.aspx; Referrer: http://localhost:50262/Default.aspx

On my Default.aspx, I had a hyperlink to the Missing.aspx page.

Gary
using System;
using System.IO;
 
namespace WebApplication2
{
    public partial class FileNotFound : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            // Log 404 Not Found's to Errors.log file
            string fileName = Server.MapPath("/Errors.log");
            string output = string.Format("{0} - File Not Found: {1}; Referrer: {2}\n",
                DateTime.Now, Request.QueryString["aspxerrorpath"], Request.UrlReferrer);
 
            using (StreamWriter sw = new StreamWriter(fileName, true))
            {
                sw.Write(output);
            }
 
            //TODO: Format rest of page to display to user
        }
    }
}

Open in new window

0
 
CamilliaAuthor Commented:
thanks gary. Let me look. Thanks for sticking with this.
0
 
CamilliaAuthor Commented:
thanks for your help. Seems like the pages cant find some SkinIDs. Thanks for helping me out with this.

Kamila.
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

  • 5
  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now