/// <summary> /// 僒僀僩偺僀儞僼僅偵傛傝丄僒僀僩傪怴婯偡傞 /// </summary> /// <param name="server">僒僀僩</param> public void Create(FIisServer server) { FIisConnection cnn = (FIisConnection)Connection; FAdDirectory sitesDir = cnn.Root; string siteId = NewSiteID(); // Site property setup FAdDirectory serverDir = sitesDir.CreateChild(siteId, FIisServer.CLASS_NAME); //serverDir["AuthFlags"] = EAuthFlags.None; serverDir["DefaultDoc"] = "Default.aspx"; serverDir["ServerBindings"] = ":" + server.Port + ":"; serverDir["ServerComment"] = server.Site; serverDir["ServerAutoStart"] = true; serverDir.CommitChanges(); // Root property setup FAdDirectory rootDir = serverDir.CreateChild(FIisVirtualDir.PATH_ROOT, FIisVirtualDir.CLASS_NAME); rootDir["AccessFlags"] = EWebAccess.Read | EWebAccess.Execute | EWebAccess.Script; //rootDir["AppIsolated"] = EAppIsolated.PooledProcess; if (server.PoolName != null) { // Build pool if (!cnn.Pools.Exists(server.PoolName)) { cnn.Pools.Create(server.PoolName); } } else { server.PoolName = FIisAppPool.DEFAULT_NAME; } rootDir["AppRoot"] = "LM/W3SVC/" + siteId + "/Root"; rootDir["AuthFlags"] = EAuthFlags.AuthNTLM; rootDir["Path"] = server.WebPath; rootDir.CommitChanges(); // Set pool rootDir.Invoke("AppCreate3", new object[] { 0, server.PoolName, true }); // Set pool rootDir["AppFriendlyName"] = server.Site; rootDir.CommitChanges(); server.Entry = serverDir.Entry; }
/// <summary> /// 僒僀僩偺僀儞僼僅偵傛傝丄僒僀僩傪嶍彍偡傞 /// </summary> /// <param name="server"></param> public void Delete(FIisServer server) { if (server != null && server.Entry != null) { FIisConnection cnn = (FIisConnection)Connection; _logger.Debug(this, "Delete", "Delete site " + server.Site + "@" + server.Entry.Name); FAdDirectory rootEntry = Connection.Get("/" + server.Entry.Name + "/ROOT"); string poolId = (string)rootEntry.Entry.Properties["AppPoolId"].Value; if (poolId != null && !FIisAppPool.DEFAULT_NAME.Equals(poolId)) { if (cnn.Pools.Exists(poolId)) { cnn.Pools.Delete(poolId); } } FAdDirectory root = Connection.Root; root.Entry.Children.Remove(server.Entry); root.Entry.CommitChanges(); _logger.Debug(this, "Delete", "Delete site success " + server.Site); } }