Log Application Errors When CustomErros Is Set To On?
Nov 27, 2010
I have setup an MVC application to log errors with log4net. In my global.asax I catch Application errors using the Application_Error method (s_log is my logging manager which is a wrapper around Log4net).
When customErrors is set to "Off" I get the yellow screen of death and can see the error in my log file. When customErrors is set to "On" I see my Error page (and the detailed error) but nothing is written in the log file (debugging doesn't hit the Application_Error).
Error.aspx
<h1>Sorry, an error occurred while processing your request.</h1>
<strong>Controller: </strong> <%= Model.ControllerName %><br />
<strong>Action: </strong> <%= Model.ActionName %>[code]....
I have a C# web forms ASP.NET 4.0 web application that uses Routing for URLs for some reason custom errors defined in the system.web section of my web.config is entirely ignored and it will fall back the IIS errors.
This gets entirely ignored
[code]....
This would be a minor inconvenience except that by the fact it falls back to IIS native instead of my application it completely circumvents Elmah logging my 404 exceptions correctly.
When setting up asp.net error handlers for things like 404 errors, it is more 'efficient' to do this in IIS, or handle it in the Global.asax Application_Error event? I know the latter will be called, and I want to log this information in a database, but should I then just return without any redirect and let IIS do the redirect, or would it be better to do a response.redirect inside application_error once we've logged it?
I am using TFS to build my MVC app. I cannot do it because I get lots of compile errors. I am using version 4 of .Net and MVC 2. On the build server I have the .Net framework 4.0 installed. It has been suggested that I should also download the MVC framework as well, but when I look on the net all I can find is this MVC framework; http://mvcframework.codeplex.com/ which does not seem to be relevant and does not work anyway.
One of the assemblies I am missing on the build server is System.Web.Mvc dll.Typical error messages include; "The type or namespace name 'Mvc' does not exist in the namespace 'System.Web' (are you missing an assembly reference?)"What do I need to do to fix this?
I'm wondering what the best practice is in reporting back to the browser about application or model state errors that would be displayed to the user. Can you throw an exception and handle it in the error handler of the jquery post? For example, consider this method:
[HandlerErrorWithAjaxFilter, HttpPost] public ActionResult RetrievePassword(string email) { User user = _userRepository.GetByEmail(email); if (user == null) throw new ClientException("The email you entered does not exist in our system. Please enter the email address you used to sign up."); string randomString = SecurityHelper.GenerateRandomString(); user.Password = SecurityHelper.GetMD5Bytes(randomString); _userRepository.Save(); EmailHelper.SendPasswordByEmail(randomString); if (Request.IsAjaxRequest()) return Json(new JsonAuth { Success = true, Message = "Your password was reset successfully. We've emailed you your new password.", ReturnUrl = "/Home/" }); else return View(); }
Is it correct to throw an exception in this case when the user is null? Or should I instead do this and handle it in the success handler of the jquery post: return Json(new JsonAuth { Success = false, Message = "The email you entered does not exist in our system. Please enter the email address you used to sign up.", ReturnUrl = "/Home/" });
I'm trying to configure the logging settings to log all events in a database and event viewer but email only errors and warnings. Database and Event Viewer part works fine except that I'm not getting any email for errors.
Note: There isn't any problem with smtp settings because I get event's emails if I add the listener to "General" and "All events" in category sources.
Here is my config: (I'm using Microsoft.Practices.EnterpriseLibrary.Logging 3.1.0.0)
After following the instructions in Scott Guthrie's blog for converting a web site to a web application project, I am getting many, many errors. Most are either 'Name <control> is not declared.' or 'Type <type> is not defined.' And most, but not all of these errors are in the same .vb page.
I got these errors while trying to run a web application using vs 2008, The first error is this: >Application has generated an exception that could not be handled. >process ID=0x1130 (4400), Thread ID=0xe6c (3692). And when I press OK a second dialog reports this error:>unable to connect to the asp.net development server. I reinstalled, repaired and re registered msdbg2.dll and edited hosts file but still get this error. I need to debug an application but I can't. This error is on a 'Win 2003 server enrterprise service pack 1' with a vs2008 team system installation. What can I do to remove this error and run and debug my application?
When I build my program, if there's one error that prevents it from running, instead of just getting the one error I'll get around 50 additional errors in addition to the real one such as:
Error 27 Validation (XHTML 1.0 Transitional): This name contains uppercase characters, which is not allowed.
strange error message in IIS after updating Windows 7 (x64) with SP1. Open the IIS Manager Browse to an exisiting Virtual Application (or create a new one) Open its Basic Settings dialog Click Test Settings The error message comes up. It's happening with new Applications and also with ones that were already there (and without that problem) before. The applications themselves continue to work.
I am trying to publish an MVC 2 site in Visual Studio 2010 on Windows Server 2008 R2.
As I read to do, I expand References and select: - System.Web.MVC - System.Web.Routing - System.Web.Abstractions and set Copy Local to True.
Then I right click the MVC Web Project and select Publish. I select Publish Method of File System. This publishes to the local file directory I specified in a compiled down version. My first question is this: The MVC specific references whose Copy Local I set to true do not show up in the published bin file like I thought they were supposed to do. Now when I copy the files over to production it does not work.
For the top level [URL] I get: 403 - Forbidden: Access is denied. You do not have permission to view this directory or page using the credentials that you supplied.
For [URL] I get: 404 - File or directory not found. The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable.
For [URL] I get: 500 - Internal server error. There is a problem with the resource you are looking for, and it cannot be displayed. Can someone point me to the right way to do this?
Last night i have ran my application which was workin 100%, but in the morning when i run it, it shows the error message in IE Status Bar Done but with some errors on Page due to this, my Menu and TreeView is not appearing well.
I have an application where I use the AJAX Tabpanel. It works 99 times out of 100. But sometimes a JavaScript error appears on the site saying that the Tabpanel cannot be found. What I want is to check the site for JS errors and if JS errors appear then I will reload the site. In Pseudo-code:
Code:
If noJavaScriptErrorsAppear then Ok Else reloadTheSite Endif
Is that possible to implement in the serverside code e.g. in the page events?
I've developed a fairly simple web service which receives an xml string, validates it and passes it on to our internal database. This has been written to enable one of our clients to send us idocs from their SAP system. The trouble is that, although the web service works fine from a .net program, over the internet, the client's SAP system can't access it. They either get just an http 200 back (rather than the status code that the web service should supply) or they get http 500 'Internal Server Error'. I was wondering if anyone else has had issue's with ASP.NET web services from non 1qs`asp.net applications, or whether anyone can give me any advice on debugging http 500 errors.
I want to perform some simple form validation in my controller.
Here's an excerpt from the controller action:
[code]....
It appears that must use a string as the error's key. Is there a way i can generate the corect key from the model, or should I just check for what input name Html.PasswordFor(x => x.NewPassword) returns?
i have a website, i want to place the compile code on the production server, now i took the code on the local machine and trying to compile source code on local machine, but whenever i compile the code, in one of my control(ascx.cs) file i am getting error that the control does not exists in current context, i checked everything, Inherits, CodeFile, even in the code behind(.cs) file, everything is perfect, even i get the control id in the intellisense, when i remove the control and again add the same using intellisense, the errors gets removed but after i publish site, the same error comes again
We are Running Windows 7 or Windows 2008 using integrated pipeline (not classic) and we are Getting 404 Errors when mixing MVC with Website and / or WebApplication ProjectsHowever, this problem doesn't exist when I run off the web server locally in visual studio, only when I use IIS 7.5. Is there anything special you need to configure in IIS 7.5 in order for website and webapplication projects to use MVC? I wouldn't think so, but when I run mvcapplication on IIS 7.5
I am currently using Server.CreateObject("MSXML2.ServerXMLHTTP.3.0") to get information via XML. The App was built connecting from Point A to Point B, with A & B being 2 servers in different locations. Through a cloud, we setup both locations on the same server with different hostheaders... Since this happened, we are getting an "invalid cert." error when we try and make the XML connection. I changed to code to invoke SXH_OPTION_IGNORE_SERVER_SSL_CERT_ERROR_FLAGS, but it was recently brought to my attention that this could in fact be invalidating the SSL, and the connection is no longer secure. Does anyone know if thats the case?
If so, is there typically a problem with 1 server establishing an SSL connection between itself? The certificate has remained the same (a wildcard cert. enabling *.mysite.com) just the physical location of the servers is what moved (And technically the version of IIS was upped to 7).
I'm using ELMAH to handle the exceptions in my ASP.Net MVC project. I would like to use it to log errors like database connection timeout, query connection timeout and others. Is this possible with ELMAH?
I get all the web errors from my website emailed to me. My job is to google the client ip address and check if it is a real error with the website, or if it is an error caused by mcafee secure (just from crawling the site). There is another type of error that I only have to worry about sometimes. That error, when I google the ip address, will come up as botsvsbrowsers. If it's a bot then I don't think it's of concern, but a browser is. My question is how am I to tell the difference. I also completely don't understand the whole concept of botsvsbrowsers ip in the first place. If it's a bot, then who or what caused the error?
I've just starting looking at a site in place at work. They're using Elmah to log errors.It seems to be logging fine, but in the web interface, when I tell Elmah to show me 100 errors per page, it only shows the most recent 15.Then when I click on "Download Log" I only get shown 15 errors in the CSV.Anyone know how I can configure it to keep all the errors?Or can someone point me to some docs on how to do this?
I have written an ADO.net (with MS Access) script that should update one record and inserts another. However, when I run it can't seem to find the parameters and I get the familar 'no value give for one or more parameters' error. The values that I am converting into parameters are sessions (and they do exist since I print them out on the previous page).