Adds exception handling in DownloadAndServeFile

This adds exception handling in DownloadAndServeFile method to catch
WebException so we can propagate the status code to the browser.
Otherwise it always returns 500 Internal Error.