Configuration :: Web Form Routing And 404 Custom Error Page?
Jan 28, 2011
I have a problem with my site, and I'm using .net 4, web form routing
I have this route ,routes.MapPageRoute("JobPreview", "jobs/{jobId}/{pg}/{Position}", "~/default.aspx")
so, this page is working fine
http://www.jobsagents.com/jobs/24651/1/automation-qa-engineer
If we remove the last segment of this url, it should be redirected to the custom 404 not found page, but in the deployment server it redirects to the default IIS error page for 404 errors
http://www.jobsagents.com/jobs/24651/1/, on my local machine it's ok, and shows my custom error page.
If we remove the last three segments of the url
http://www.jobsagents.com/jobs it works fine on the deployment server.
I am using ASP.NET 4.0 Web Forms. I learned that, in order to optimize my Web Application for Search Engine, I must implement custom 404 page. But the way Microsoft tell us to implement custom 404 (within Web.Config file), that is not good for SEO. Microsoft says,
But when the page is not found, IIS issue 302 redirect to Page-Not-Found.aspx page which is not good. So, I implemented custom 404 page using Routing technique that is available in ASP.NET 3.5 SP1 and 4.0. I used the following router in Global.asax page
In my website users can create thier own websites by making folder of thier choice like: [URL] Where the folders Pankaj and Adam are storing in database. I just want that when user after creting thier website just clicked or type the address of thier website as [URL] then if the folder with name Pankaj exists in database then the page will open otherwise it gives the http 404 page not found error. And while the address [URL] is opens then i donot want to physically create it on server. My requirement is that i want to open it by the concept of url rewriting/ Routing. Which one concept will be good for this. And can anyone provide some code with example that how can i achieve this easily.
I have a form that works just fine, problem is that if user leave form open for more than 20 30 min and then click a button on that form the browsers status line shows "Error in page", user then must refresh the page in order for the page function.
I have web app written in .net 4.0 using url routing. It works fine in the development environment in VS 2010.But It's not working after publishing to iis7. on remote server i'm getting error HTTP Error 404.0 - Not FoundThe resource you are looking for has been removed, had its name changed, or is temporarily unavailable. I tried in virtual directory and it's not working.[URL]
tried to do a search on this, but it kept timing out on me, so sorry if this has been answered before.In IIS7, I've setup a custom 404 error page, which works if you go to a document, but not if you go to a directory...
When I reference a page that does not exist (for example,http://example.com/doesnotexist.aspx) I still get the standard white 404 error page "The resource cannot be found." rather than getting redirected to error404.aspx page that I specified. On unhandled exception, the page does get redirected correctly to error.aspx, just not when it is 404 error. For some reason IIS always pre-empts ASP.NET worker process from processing the 404 errors
I am referring to errors generated by my asp.net. For example I created a sample page and wrote 'throw new Exception("some error")' as a test. How can I retrieve an instance of the exception or exception details in my "/error/error.aspx" page? Currently in my error page if I query Server.GetLastError() the return value is null.
My web page is having an asp.net chart control. It's generating fine for normal view. When I try to access same page using asp.net web forms URL routing even the chart is generated it wont appear. This is the working URL of browser [URl]
I defined a default error page in the ASP.Net Web Site Administration tool. The page exists in root directory. I also confirmed that it pointed to my frmErrorPage.aspx by looking in my Web.config file
Running my site locally from within visual studio, I tried to surf to a non existent page. This threw an error as it is suppose to, but did not pull up my custom error page. I get
Code: Server Error in '/' Application. The resource cannot be found. Description: HTTP 404. ...
I am showing Custom Error in my page.if somehting happend wrong. but if the same error occured in my subview master page I am not able to show the Custom error page on Entire page its showing me that Error page under subview master page.I am attching the Screen shot.Can any body help me out how to show the Error page on entire page if something happend in any where submaster or other page.Here is the code that I am using in web config file to show custom Error page..
[CODE]...
Here I know the issue what's going on.This issue is occurring because i am using AJAX to partially load the contents of the tabs after the initial page load so the error is occurring AFTER my master page has been loaded.What I need to do is provide a javascript function to handle the error after the ajax call has returned and redirect to the error page.How to write this Javascript and where Do I need to write this?
I have spent several hours today reading up on doing Custom Routing in ASP.NET MVC. I can understand how to do any type of custom route if it expands from or is similar/smaller than the Default Route. However, I am trying figure out how to do a route similar to:
/Language/{LanguageID}/Question/{QuestionID}/
And what I would like, too, is similar to how SO works. Something like:
When I access the page us a url (in debug mode) http://localhost/logon.aspx?v=1 the page loads correctly and the jquery button command loads correctly. But then I access the page using the new url route, I get this error.
Can anyone send me proper configuration settings in web.config for ASP.NET 4.0. I am unable to redirect pages to desired url on page not found. It seems there are changes in properties as compared to previous framework.
Here's my Application_OnError event sink in global.asax.vb:
Sub Application_OnError(ByVal sender As Object, ByVal e As EventArgs) Dim innerMostException As Exception = getInnerMostException(Me.Context.Error) If TypeOf innerMostException Is AccessDeniedException Then Security.LogAccessDeniedOccurrence(DirectCast(innerMostException, AccessDeniedException)) Dim fourOhThree As Integer = DirectCast(HttpStatusCode.Forbidden, Integer) Throw New HttpException(fourOhThree, innerMostException.Message, innerMostException) End If End Sub
You'll see that if we've got an innermost Exception of type AccessDeniedException we throw a new HTTPExcpetion with a status code of 403 AKA 'forbidden'
So what we're expecting is a redirect to the AccessDenied.aspx page. What we get is a redirect to the ServerError.aspx page.
We've also tried this:
Sub Application_OnError(ByVal sender As Object, ByVal e As EventArgs) Dim innerMostException As Exception = getInnerMostException(Me.Context.Error) If TypeOf innerMostException Is AccessDeniedException Then Security.LogAccessDeniedOccurrence(DirectCast(innerMostException, AccessDeniedException)) Context.Response.StatusCode = DirectCast(HttpStatusCode.Forbidden, Integer) End If End Sub
I am having a very hard time in consuming a very simple web user control that I have built using a Web Application project in VS 2010. The user control works fine as long as the consuming aspx page is in the same project. But after deploying the project using Web Deployment Project into a single assembly I am not able to use it correctly from another aspx page which is in a stand-alone project. The error I see is a null reference exception. Here are the steps that I am following:
1 Create a web user control named WebUserControl_Label using a web application project. This control works fine when used in an webform in the same project.
namespace TestWebAppWithCustomControl { public partial class WebUserControl_Label : System.Web.UI.UserControl { private string _labelText; public string LabelText { set { Label1.Text = value; } get { return Label1.Text; } } protected void Page_Load(object sender, EventArgs e) { } } }
2. Create a single assembly for the user control above using a Web Deployment project. The name of the assemby is TestWebAppWithCustomControl.
3. Create a webform in another web application project to use WebUserControl_Label user control. This project has TestWebAppWithCustomControl.dll added as a referemce.
This is how I am using the custom control above in an aspx page:
The problem is that .NET throws a Null Reference Exception when its trying to set the label text via the LabelText property. It looks like that the label control that lives inside the WebUserControl_Label user control is not getting instantiated and is always null.
I have found a few articles online that talk about creating such distributable user controls using ASP.NET website projects. But if possible I would like to stick with the web application project because of the benefits it brings.
I'm still trying to learn how all of this works, and I apologize if this is a simple fix, but I'm getting frustrated and I could use some help.
I found an XML profile provider that I'm trying to use, and when I set it up, it works fine on my local machine. However when I upload it to the server, I get an error and I don't really know what it means:
Server Error in '/' Application.
Configuration Error Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.
I'm having a wicked time trying to redirect the different error scenarios to a custom error page. Basically, I have put some code in Application_Error in global.asax, and done the necessary web.config settings to use Custom Errors.
In global.asax on Application_Error, I stored the Server.GetLastError in Session. The reason I have to store it in Session is because (as far as I know) you lose the exception when using "ResponseRedirect". And the reason I have to use ResponseRedirect is because I am using an UpdatePanel with AJAX calls, and any exception during the AJAX call shows up as a JavaScript error, and doesn't get handled using the custom error page (see this post).
void Application_Error(object sender, EventArgs e){ ////must perform this check to avoid the "Session state is not available in this context" errors if (HttpContext.Current.Session != null) { Session["LastException"] = Server.GetLastError(); } else { // (I think this happens when there are compile-time errors) Server.Transfer("~/Oops.aspx"); }}void Session_Start(object sender, EventArgs e){ //must perform this check to avoid the "Session state is not available in this context" errors if (HttpContext.Current.Session != null) { //initialize the session (http://forums.asp.net/t/1405077.aspx) Session["LastException"] = ""; }}
I am trying to handle the unhandled exceptions in my project.I tried with this following code in my web.config filebut it is not at all redirecting to an error page which i have created instead of that it is throwing an exception in my code itselef. How to print the error description over therein my custom error page.
I set my web.config with a custom error for 404 and 403 response but when I try to navigate my page (not exist page). It displays the default IIS6 404 page instead of my custom page...
I've been doing research for a few days now and I know that I want to do ASP Routing over Rewriting. I found this great article:http://www.4guysfromrolla.com/articles/051309-1.aspx and also
http://blogs.msdn.com/mikeormond/archive/2008/05/14/using-asp-net-routing-independent-of-mvc.aspx. I write in VB.NET, these two articles are written in C#. I converted the code, but I must be missing something because my routing doesn't work correctly.
I was able to download the code from 4guys and it works fine. I found some differences between my results and theirs when I stepped through error checking. I added the 3 lines to the web.config file:
Theirs shows the correct value of whatever you click on The requestContext variable, > HttpContext > System.Web.HttpContextWrapper > Request > System.Web.HttpRequestWrapper > PhysicalPath = "C:UsersNvXDesktopMyWebsiteWebResource.axd"
Theirs shows PhysicalPath = "C:\Users\NvX\Desktop\RoutingDemo\Products\Pavlova" (Pavlova was the link I clicked on)
When I query the database using LINQ, it never finds WebResource.axd and redirects to the NotFound.aspx page. When I load Default.aspx, I want it to load that page. If I type /tjnevis (which is a username in the database), I want it to go to a page where I can put together a profile, pulling the information for that username, which I can figure out. It's the routing that I'm having trouble with. If I could get it to work correctly, I think the PhysicalPath should look similar to the 4guys example I downloaded.