Exemplo n.º 1
0
        public IISWebServer GetWebServer(string sWerServerName)
        {
            DirectoryEntry directoryEntry3;

            IISWebServer iISWebServer = null;
            IEnumerator iEnumerator1 = new DirectoryEntry("IIS://localhost/W3SVC").Children.GetEnumerator();
            try
            {
                while (iEnumerator1.MoveNext())
                {
                    var directoryEntry2 = (DirectoryEntry) iEnumerator1.Current;
                    if (directoryEntry2.SchemaClassName == "IIsWebServer" &&
                        ((String) directoryEntry2.Properties["ServerComment"].Value).Equals(sWerServerName))
                    {
                        iISWebServer = new IISWebServer
                                           {
                                               iID = Convert.ToInt32(directoryEntry2.Name),
                                               sServerName = (String) directoryEntry2.Properties["ServerComment"].Value
                                           };
                        directoryEntry3 =
                            new DirectoryEntry(String.Concat("IIS://localhost/W3SVC/", iISWebServer.ID, "/Root"));
                        iISWebServer.sRootPath = directoryEntry3.Properties["Path"][0] as String;
                        var iEnumerator2 = directoryEntry3.Children.GetEnumerator();
                        try
                        {
                            while (iEnumerator2.MoveNext())
                            {
                                var directoryEntry4 = (DirectoryEntry) iEnumerator2.Current;
                                if (directoryEntry4.SchemaClassName.ToUpper() != "IIsWebVirtualDir".ToUpper()) continue;
                                var iISWebVirtualDirectory = new IISWebVirtualDirectory
                                                                 {
                                                                     _sPath =
                                                                         (String)
                                                                         directoryEntry4.Properties["Path"][0],
                                                                     _sName = directoryEntry4.Name,
                                                                     _isApplication =
                                                                         (String)
                                                                         directoryEntry4.Properties["AppRoot"][0] !=
                                                                         String.Concat("/LM/W3SVC/", iISWebServer.ID,
                                                                                       "/ROOT"),
                                                                     _iWebServerID = iISWebServer.ID
                                                                 };
                                AddWebDirectories(directoryEntry4, String.Concat("/", iISWebVirtualDirectory._sName),
                                                  iISWebVirtualDirectory.WebDirectories, iISWebServer.ID,
                                                  iISWebVirtualDirectory._sPath);
                                iISWebServer.VirtualDirectories.Add(iISWebVirtualDirectory);
                            }
                        }
                        finally
                        {
                            var iDisposable = iEnumerator2 as IDisposable;
                            if (iDisposable != null)
                            {
                                iDisposable.Dispose();
                            }
                        }
                        AddWebDirectories(directoryEntry3, "", iISWebServer.WebDirectories, iISWebServer.ID,
                                          iISWebServer.RootPath);
                        directoryEntry3.Dispose();
                        break;
                    }
                }
            }
            finally
            {
                var iDisposable = iEnumerator1 as IDisposable;
                if (iDisposable != null)
                {
                    iDisposable.Dispose();
                }
            }
            return iISWebServer;
        }
Exemplo n.º 2
0
 public IISWebServerCollection GetWebServers()
 {
     var iISWebServerCollection = new IISWebServerCollection();
     IEnumerator iEnumerator1 = new DirectoryEntry("IIS://localhost/W3SVC").Children.GetEnumerator();
     try
     {
         while (iEnumerator1.MoveNext())
         {
             var directoryEntry2 = (DirectoryEntry) iEnumerator1.Current;
             if (directoryEntry2.SchemaClassName != "IIsWebServer") continue;
             var iISWebServer = new IISWebServer
                                    {
                                        iID = Convert.ToInt32(directoryEntry2.Name),
                                        sServerName =
                                            (String) directoryEntry2.Properties["ServerComment"].Value
                                    };
             var directoryEntry3 =
                 new DirectoryEntry(String.Concat("IIS://localhost/W3SVC/", iISWebServer.ID, "/Root"));
             iISWebServer.sRootPath = directoryEntry3.Properties["Path"][0] as String;
             IEnumerator iEnumerator2 = directoryEntry3.Children.GetEnumerator();
             try
             {
                 while (iEnumerator2.MoveNext())
                 {
                     var directoryEntry4 = (DirectoryEntry) iEnumerator2.Current;
                     if (directoryEntry4.SchemaClassName.ToUpper() == "IIsWebVirtualDir".ToUpper())
                     {
                         var iISWebVirtualDirectory = new IISWebVirtualDirectory
                                                          {
                                                              _sPath =
                                                                  (String) directoryEntry4.Properties["Path"][0],
                                                              _sName = directoryEntry4.Name,
                                                              _isApplication =
                                                                  (String)
                                                                  directoryEntry4.Properties["AppRoot"][0] !=
                                                                  String.Concat("/LM/W3SVC/", iISWebServer.ID,
                                                                                "/ROOT"),
                                                              _iWebServerID = iISWebServer.ID
                                                          };
                         iISWebServer.VirtualDirectories.Add(iISWebVirtualDirectory);
                     }
                 }
             }
             finally
             {
                 var iDisposable = iEnumerator2 as IDisposable;
                 if (iDisposable != null)
                 {
                     iDisposable.Dispose();
                 }
             }
             iISWebServerCollection.Add(iISWebServer);
         }
     }
     finally
     {
         var iDisposable = iEnumerator1 as IDisposable;
         if (iDisposable != null)
         {
             iDisposable.Dispose();
         }
     }
     return iISWebServerCollection;
 }
Exemplo n.º 3
0
 public IISFTPServerCollection GetFTPServers()
 {
     var iISFTPServerCollection = new IISFTPServerCollection();
     IEnumerator iEnumerator = new DirectoryEntry("IIS://localhost/MSFTPSVC").Children.GetEnumerator();
     try
     {
         while (iEnumerator.MoveNext())
         {
             var directoryEntry2 = (DirectoryEntry) iEnumerator.Current;
             if (directoryEntry2.SchemaClassName == "IIsFtpServer")
             {
                 var iISFTPServer = new IISFTPServer
                                        {
                                            iID = Convert.ToInt32(directoryEntry2.Name),
                                            sServerName =
                                                (String) directoryEntry2.Properties["ServerComment"].Value,
                                            bAllowAnonymous =
                                                (bool) directoryEntry2.Properties["AllowAnonymous"].Value,
                                            sGreetingMessage =
                                                (String) directoryEntry2.Properties["GreetingMessage"].Value,
                                            sExitMessage =
                                                (String) directoryEntry2.Properties["ExitMessage"].Value,
                                            sMaxClientsMessage =
                                                (String) directoryEntry2.Properties["MaxClientsMessage"].Value,
                                            iMaxConnections =
                                                (int) directoryEntry2.Properties["MaxConnections"].Value
                                        };
                 var directoryEntry3 =
                     new DirectoryEntry(String.Concat("IIS://localhost/MSFTPSVC/", iISFTPServer.ID, "/Root"));
                 iISFTPServer.sRootPath = directoryEntry3.Properties["Path"][0] as String;
                 iISFTPServerCollection.Add(iISFTPServer);
             }
         }
     }
     finally
     {
         var iDisposable = iEnumerator as IDisposable;
         if (iDisposable != null)
         {
             iDisposable.Dispose();
         }
     }
     return iISFTPServerCollection;
 }