Solution
1. Set the custom error mode to "Off" to view the error. After
rectifying it and before deployment, change it to "On" and specify a
default error page, as follows:-
<customErrors defaultRedirect="ErrorPage.aspx" mode="On">
</customErrors>
such that your users will not be able to see the actual error and get
your friendly error page where you can politely say "An error has
occured! Sorry for the inconvenience ..." .
2. If the above solution is not working (i.e. even after setting the
custom error mode to On, the same "Server Error" occurs, then the likely
chance is that your web.config file is not well formed and has invalid
characters etc.,
To resolve, it copy paste the contents of the file to a notepad, save it
as an xml file and try to browse the xml file in the browser. If the
xml file is unable to be rendered by the browser and throws error, then
you can find the place where the tags are not well formed or invalid
character(s) exist and rectify them.
Things worth noting is Web.config is case sensitive and even trailing / leading spaces can cause the above error.