alterm4nn/ChronoZoom — pull request #1365 by NeilCresswell (2014-10-18 00:54:36+00:00)
Title: Error Handling Improvements

## Error Handling Improvements

- Addition of server-side (C#) Airbrake error reporting to complement existing client-side (JS) Airbrake reporting.
- Distinguishing JS errors from C# errors in Airbrake by appending " (JS)" to environment entries so can distinguish between both in filters.
- New AppKey toggle to enable/disable client-side Airbrake reporting. Useful as service had a recent outage. (See .)
- New AppKey toggle to enable/disable server-side Airbrake reporting. Useful as service had a recent outage. (See .)
- New friendly generic error page created and wired up for uncaught server-side errors. Can view directly at /error.html to see what looks like.
- Web.config changes so developers on same local box see real error, and everyone else (real users) see the generic error page.

The generic error page is a better choice for end-users since it:

1. Hides the real server-side error, which can otherwise be examined and exploited by hackers and malicious crawlers.
2. Is a friendlier experience with some options for next steps, and is more intelligible for the end-user than a technical error.

## AppKey Configuration Changes

- New key "Airbrake.TrackServer" can be set to true/false to indicate if we want to use Airbrake to track server-side C# errors.
- New key "Airbrake.TrackClient" can be set to true/false to indicate if we want to use Airbrake to track client-side JS errors.
- New key "Airbrake.ProjectId" replaces old key "AirbrakeProjectId". Existing values should be migrated.
- New key "Airbrake.ApiKey" replaces old key "AirbrakeProjectKey". Existing values should be migrated.
- New key "Airbrake.Environment" replaces old key "AirbrakeEnvironmentName". Existing values should be migrated.