iis8 detailed error logging to file - c#

I can get Detailed Error logging to screen (local/remote etc). But what I really want is to log "Detailed Error" to file.
Does this exist?
I checked all the documentation that I can find, and for the life of me i can't see how to do this.
I don't understand why this wouldn't be a requested feature - something that sits halfway between "no logs" and processor-intensive "failed request tracing".

If you are working with asp.net and want a drop in "write my errors to a log file" without making code changes, take a look at elmah
The "pure" IIS solution is Failed Request Tracing.

Related

My custom error message is getting overwritten

So I have a web page written in C# for ASP.NET and in some cases it returns a custom error.
For example, at one point it can be like:
Response.StatusCode = 400;
Response.Status = "A long custom error message here.";
Response.Write(Resonse.Status);
and when I open this up locally (through http://mymachinename/foo/bar.aspx) I see my custom error message. When I deploy it to a remote server I just see my custom error message overwritten with the text "Bad Request" (that's all). It must be some configuration, but I can't find it.
Check to see if you have the httpErrors attribute defined in your web.config.
<system.webServer>
<httpErrors existingResponse="PassThrough" />
</system.webServer>
Servers can have their own configuration files with error codes like you mentioned. For example, editing the .htaccess file on an apache server will allow you to link your own error pages to the exceptions, or you can just write in the markup yourself to save some time.
Update
You can also do
Response.TrySkipIisCustomErrors
if you are using IIS that is.
Additional Info
http://blogs.iis.net/ksingla/archive/2008/02/18/what-to-expect-from-iis7-custom-error-module.aspx
Those solutions provided by other guys are perfectly valid, But I think you can control it from you IIS Manager too, if there is a defined error page with code 400, Open your IIS Manager, go to .Net Error Pages, look for error code 400 click on edit feature setting on the right panel then select Off in the opened Edit Error Page Setting window.

How to show the custom message when database down

I have deployed the web application and customer accessing web application publically in between my databse down then I want show the custom message to the user. In my web application 50 pages, and I want to handle message commonly for all pages. Please help how to do this.
You can configure a section in web.config that tells ASP.NET/IIS to redirect users to a set of static or dynamic pages in case of common errors.
Check out this article - http://www.asp.net/hosting/tutorials/displaying-a-custom-error-page-cs
The scenario is pretty similar - something goes wrong with the SQL DB call and you dont want to display an ugly error.
Make sure to include some sort of logging somewhere so that you know these errors are happing, however. One plus side of ugly error messages are that you'll hear about them right away ;)

Appropriate response to Process.Start(URL); failure?

I have a .NET 4 application that uses Process.Start(URL); to open the user's default browser and take them to my update page if they accept an update request. This works fine for most people, but I'm getting crash logs from some users where this fails with:
System.ComponentModel.Win32Exception (0x80004005): The system cannot find the file specified
I have chastised myself for ignoring the possibility of failure here and using naive examples from the web and now I'm trying to work out what to do. My first instinct is to show a general "Couldn't open browser, here's the URL" message and maybe add a button to copy it to the clipboard, but can I do better?
A more robust way to open the URL? Although this seems to be the standard answer to questions about opening URLs, is it really the best way?
Something more informative to say to the user? Does failure mean a misconfiguration on the user's machine? Virus-scanner blocking access, maybe?

Sending 500 Error Information To Yourself

Where would I need to hook in (at what event) to be able send myself every 500 error that happens on my current ASP.NET project. Something inside the global.asax? And I'd like to send myself the output that the user would see. The white/yellow/black 500 standard ASP.NET error HTML.
My users only see the errors about 10% of the time. The other 90% these are Ajax responses.
You can do this in global.asax.cs using Global Error Handling in ASP.Net using the Application_Error(...) method
If you're more interested in the end result than in the process of making it work yourself, you might like to take a look at the Elmah ("Error Logging Modules and Handlers") project - http://code.google.com/p/elmah/
It's allows you to do many things with errors - send email notifications, log them to a database, browse the error log via a web interface, and even crazy things like an RSS feed of errors or using Twitter to tweet errors.
It's quite easy to install and configure.

Elmah is only logging 15 Errors

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?
Thanks a lot!
-Evan
Looks like there is no database configured to log errors to.
By default it only logs the last 15 errors to memory if it has no where to write it to...

Categories

Resources