public static string GetExternalUri(string localUri) { try { var uri = HttpRuntime.Cache.Get(localUri) as string; if (string.IsNullOrEmpty(uri)) { var webRequest = (HttpWebRequest)WebRequest.Create(localUri); // hack. http://ubuntuforums.org/showthread.php?t=1841740 if (IsMono) { ServicePointManager.ServerCertificateValidationCallback += (s, ce, ca, p) => true; } using (var response = webRequest.GetResponse()) using (var responseStream = response.GetResponseStream()) { var key = ServiceConverter.GenerateRevisionId(localUri); uri = ServiceConverter.GetExternalUri(responseStream, response.ContentLength, response.ContentType, key); } HttpRuntime.Cache.Remove(localUri); HttpRuntime.Cache.Insert(localUri, uri, null, DateTime.Now.Add(TimeSpan.FromMinutes(2)), Cache.NoSlidingExpiration); } return(uri); } catch (Exception) { } return(localUri); }
public static string GetExternalUri(string localUri) { try { var uri = HttpRuntime.Cache.Get(localUri) as string; if (string.IsNullOrEmpty(uri)) { var webRequest = WebRequest.Create(localUri); using (var response = webRequest.GetResponse()) using (var responseStream = response.GetResponseStream()) { var key = ServiceConverter.GenerateRevisionId(localUri); uri = ServiceConverter.GetExternalUri(responseStream, response.ContentLength, response.ContentType, key); } HttpRuntime.Cache.Insert(localUri, uri, null, DateTime.UtcNow.Add(TimeSpan.FromMinutes(2)), Cache.NoSlidingExpiration); } return(uri); } catch (Exception) { } return(localUri); }