diff --git a/src/ImageProcessor.Web/NET45/Caching/DiskCache.cs b/src/ImageProcessor.Web/NET45/Caching/DiskCache.cs
index 7d4150f45..421070612 100644
--- a/src/ImageProcessor.Web/NET45/Caching/DiskCache.cs
+++ b/src/ImageProcessor.Web/NET45/Caching/DiskCache.cs
@@ -51,7 +51,7 @@ namespace ImageProcessor.Web.Caching
///
/// The absolute path to virtual cache path on the server.
///
- private static readonly string AbsoluteCachePath = HostingEnvironment.MapPath(ImageProcessorConfig.Instance.VirtualCachePath);
+ public static readonly string AbsoluteCachePath = HostingEnvironment.MapPath(ImageProcessorConfig.Instance.VirtualCachePath);
///
/// The request for the image.
@@ -229,7 +229,7 @@ namespace ImageProcessor.Web.Caching
DirectoryInfo parentDirectoryInfo = directoryInfo.Parent;
// ReSharper disable once PossibleNullReferenceException
- foreach (DirectoryInfo enumerateDirectory in parentDirectoryInfo.EnumerateDirectories())
+ foreach (DirectoryInfo enumerateDirectory in SafeEnumerateDirectories(parentDirectoryInfo))
{
IEnumerable files = enumerateDirectory.EnumerateFiles().OrderBy(f => f.CreationTimeUtc);
int count = files.Count();
@@ -260,6 +260,22 @@ namespace ImageProcessor.Web.Caching
}
}
+ public static IEnumerable SafeEnumerateDirectories(DirectoryInfo directoryInfo)
+ {
+ IEnumerable directories;
+
+ try
+ {
+ directories = directoryInfo.EnumerateDirectories();
+ }
+ catch
+ {
+ return Enumerable.Empty();
+ }
+
+ return directories;
+ }
+
///
/// Gets the full transformed cached path for the image.
/// The images are stored in paths that are based upon the sha1 of their full request path