private void UpdateCompressionSettings() { if (base.Fields.IsModified("GzipLevel")) { string metabasePath = this.DataObject.MetabasePath; Gzip.SetIisGzipLevel(IisUtility.WebSiteFromMetabasePath(metabasePath), GzipLevel.High); Gzip.SetVirtualDirectoryGzipLevel(metabasePath, this.DataObject.GzipLevel); if (Environment.OSVersion.Platform == PlatformID.Win32NT && Environment.OSVersion.Version.Major >= 6) { try { Gzip.SetIisGzipMimeTypes(); } catch (Exception ex) { TaskLogger.Trace("Exception occurred in SetIisGzipMimeTypes(): {0}", new object[] { ex.Message }); this.WriteWarning(Strings.SetIISGzipMimeTypesFailure); throw; } } } }
private void UpdateCompressionSettings() { if (this.GzipLevel == GzipLevel.Error) { base.WriteError(new TaskException(Strings.GzipCannotBeSetToError), ErrorCategory.NotSpecified, null); return; } if (this.GzipLevel == GzipLevel.Low) { this.WriteWarning(Strings.GzipLowDoesNotUseDynamicCompression); } string metabasePath = this.DataObject.MetabasePath; Gzip.SetIisGzipLevel(IisUtility.WebSiteFromMetabasePath(metabasePath), GzipLevel.High); Gzip.SetVirtualDirectoryGzipLevel(metabasePath, this.DataObject.GzipLevel); if (Environment.OSVersion.Platform == PlatformID.Win32NT && Environment.OSVersion.Version.Major >= 6) { try { Gzip.SetIisGzipMimeTypes(); } catch (Exception ex) { TaskLogger.Trace("Exception occurred in SetIisGzipMimeTypes(): {0}", new object[] { ex.Message }); this.WriteWarning(Strings.SetIISGzipMimeTypesFailure); throw; } } }
internal static void UpdateMetabase(ExchangeWebAppVirtualDirectory webAppVirtualDirectory, string metabasePath, bool enableAnonymous) { try { DirectoryEntry directoryEntry2; DirectoryEntry directoryEntry = directoryEntry2 = IisUtility.CreateIISDirectoryEntry(webAppVirtualDirectory.MetabasePath); try { ArrayList arrayList = new ArrayList(); if (webAppVirtualDirectory.DefaultDomain.Length > 0) { arrayList.Add(new MetabaseProperty("DefaultLogonDomain", webAppVirtualDirectory.DefaultDomain, true)); } else if (webAppVirtualDirectory.DefaultDomain == "") { directoryEntry.Properties["DefaultLogonDomain"].Clear(); } IisUtility.SetProperties(directoryEntry, arrayList); directoryEntry.CommitChanges(); IisUtility.SetAuthenticationMethod(directoryEntry, AuthenticationMethodFlags.None, true); IisUtility.SetAuthenticationMethod(directoryEntry, AuthenticationMethodFlags.Basic, webAppVirtualDirectory.BasicAuthentication); IisUtility.SetAuthenticationMethod(directoryEntry, AuthenticationMethodFlags.Digest, webAppVirtualDirectory.DigestAuthentication); IisUtility.SetAuthenticationMethod(directoryEntry, AuthenticationMethodFlags.WindowsIntegrated, webAppVirtualDirectory.WindowsAuthentication); IisUtility.SetAuthenticationMethod(directoryEntry, AuthenticationMethodFlags.LiveIdFba, webAppVirtualDirectory.LiveIdAuthentication); if (webAppVirtualDirectory.FormsAuthentication) { OwaIsapiFilter.EnableFba(directoryEntry); } else { OwaIsapiFilter.DisableFba(directoryEntry); } IisUtility.SetAuthenticationMethod(directoryEntry, MetabasePropertyTypes.AuthFlags.Anonymous, enableAnonymous); directoryEntry.CommitChanges(); } finally { if (directoryEntry2 != null) { ((IDisposable)directoryEntry2).Dispose(); } } GzipLevel gzipLevel = webAppVirtualDirectory.GzipLevel; string site = IisUtility.WebSiteFromMetabasePath(webAppVirtualDirectory.MetabasePath); Gzip.SetIisGzipLevel(site, GzipLevel.High); Gzip.SetVirtualDirectoryGzipLevel(webAppVirtualDirectory.MetabasePath, gzipLevel); } catch (IISGeneralCOMException ex) { if (ex.Code == -2147023174) { throw new IISNotReachableException(IisUtility.GetHostName(webAppVirtualDirectory.MetabasePath), ex.Message); } throw; } }