public void Dispose() { if (_workContextScope != null) { _workContextScope.Dispose(); } }
public IAsyncResult BeginProcessRequest(HttpContext context, AsyncCallback cb, object extraData) { scope = workContextAccessor.CreateWorkContextScope(new HttpContextWrapper(context)); var shellSettings = scope.Resolve <ShellSettings>(); if (shellSettings.State == TenantState.Offline) { var appDataFolder = scope.Resolve <IAppDataFolder>(); var path = appDataFolder.Combine("Sites", shellSettings.Name, "App_Offline.htm"); if (appDataFolder.FileExists(path)) { context.Response.WriteFile(appDataFolder.GetVirtualPath(path)); } else { if (appDataFolder.FileExists("App_Offline.htm")) { context.Response.WriteFile(appDataFolder.GetVirtualPath("App_Offline.htm")); } else { context.Response.Write("Sorry, our site is undergoing routine maintenance. Please check back with us soon."); } } var asyncResult = new OfflineAsyncResult(); return(asyncResult); } try { return(httpAsyncHandler.BeginProcessRequest(context, cb, extraData)); } catch { scope.Dispose(); throw; } }
public void Dispose() { _workContextScope.Dispose(); _shellContext.Dispose(); }