Error is pretty straight forward. It's a security permissions issue.
Are you using any kind of 'impersonation'? Either in your Web.Config file or in IIS? If so, then you need to give that user correct permissions.
In case of impersonation, ASPNET is not the one accessing the path.
BTW: there is a typo (or mistake?) in line:
Url = HttpContext.Current.Server.MapPath("~/Images" );
Forward slash is missing at the end. It should be:
Url = HttpContext.Current.Server.MapPath("~/Images/" );