public static Customers2 GetCustomers2() { //Get customers list Customers2 customers = null; RoadshowServiceClient client = new RoadshowServiceClient(); try { ObjectCache cache = MemoryCache.Default; customers = cache["customers"] as Customers2; if (customers == null) { customers = client.GetCustomers2(); client.Close(); //CacheItemPolicy policy = new CacheItemPolicy(); //policy.ChangeMonitors.Add(new SqlChangeMonitor(new SqlDependency())); DateTimeOffset policy = new DateTimeOffset(DateTime.Now.AddMinutes(_cacheTimeout)); cache.Set("customers", customers, policy); } } catch (TimeoutException te) { client.Abort(); throw new ApplicationException(te.Message); } catch (FaultException <RoadshowFault> rfe) { client.Abort(); throw new ApplicationException(rfe.Detail.Message); } catch (FaultException fe) { client.Abort(); throw new ApplicationException(fe.Message); } catch (CommunicationException ce) { client.Abort(); throw new ApplicationException(ce.Message); } return(customers); }