Esempio n. 1
0
        /// <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;
        }
Esempio n. 2
0
 /// <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);
     }
 }