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);
        }
Beispiel #2
0
 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);
 }