相关IIS的虚拟目录的控制总结

有关IIS的虚拟目录的控制总结

程序中需USE   COMOBJ单元   
  1.Q:如何得到机器上IIS中所有的WEB虚拟站点.   
    
  A:   
    
  var   
      InstallPath:   String;   
      WebSite,   WebServer,   WebRoot:   Variant;   
      count:   Integer;   
      Flag:   Boolean;   
  begin   
        Flag   :=True;   
        count   :=1;   
    
        while     Flag   do   
        begin   
              try   
    
                  WebSite   :=CreateOLEObject('IISNamespace');   
                  WebSite   :=   WebSite.GetObject('IIsWebService',   'localhost/w3svc');   
                  WebServer   :=   WebSite.GetObject('IIsWebServer',   inttostr(count));   
                  Memo1.Lines.Add(WebServer.ServerComment);   
                  inc(count);   
                  except   
                      flag   :=False;   
                  end;   
          end;   
    
  2.   Q:通过程序控制默认WEB站点的启动,停止,暂停   
  A:   
  //停止WEB站点   
    
  procedure   TForm1.btn_stopClick(Sender:   TObject);   
  var   
      InstallPath:   String;   
      WebSite,   WebServer,   WebRoot:   Variant;   
  begin   
        try   
              WebSite   :=CreateOLEObject('IISNamespace');   
              WebSite   :=   WebSite.GetObject('IIsWebService',   'localhost/w3svc');   
              WebServer   :=   WebSite.GetObject('IIsWebServer',   '1');   
              if   string(webserver.ServerState)   ='2'   then   
              begin   
                  webserver.stop;   
                  showmessage('停止服务成功');   
              end;   
        except   
              showmessage('停止服务失败');   
        end;   
    
  end;   
    
  //启动WEB站点   
    
  procedure   TForm1.btn_startClick(Sender:   TObject);   
  var   
      InstallPath:   String;   
      WebSite,   WebServer,   WebRoot:   Variant;   
  begin   
          try   
              WebSite   :=CreateOLEObject('IISNamespace');   
              WebSite   :=   WebSite.GetObject('IIsWebService',   'localhost/w3svc');   
              WebServer   :=   WebSite.GetObject('IIsWebServer',   '1');   
              if   string(webserver.ServerState)   ='4'   then   
              begin   
                  webserver.start;   
                  showmessage('启动服务成功');   
              end;   
          except   
              showmessage('启动服务失败');   
          end;   
    
    
  end;   
    
  //暂停WEB站点   
    
  procedure   TForm1.btn_pauseClick(Sender:   TObject);   
  var   
      InstallPath:   String;   
      WebSite,   WebServer,   WebRoot:   Variant;   
  begin   
      try   
          WebSite   :=CreateOLEObject('IISNamespace');   
          WebSite   :=   WebSite.GetObject('IIsWebService',   'localhost/w3svc');   
          WebServer   :=   WebSite.GetObject('IIsWebServer',   '1');   
          if   string(webserver.ServerState)   ='2'   then   
          begin   
              webserver.pause;   
              showmessage('暂停服务成功');   
          end;   
      except   
          showmessage('暂停服务失败');   
      end;   
    
  end;   
    
    
    
  3.虚拟目录的创建   
  a:以程序在网上或超级猛料中也有,但都没有指定应用程序名,以下程序已完成此功能   
  var   
      InstallPath:   String;   
      WebSite,   WebServer,   WebRoot,   VDir:   Variant;   
  begin   
      WebSite   :=   CreateOleObject('IISNamespace');   
      WebSite   :=   WebSite.GetObject('IIsWebService',   'localhost/w3svc');   
      WebServer   :=   WebSite.GetObject('IIsWebServer',   '1');   
      webserver.setinfo;   
      WebRoot   :=   WebServer.GetObject('IIsWebVirtualDir',   'Root');   
      VDir   :=   WebRoot.Create('IIsWebVirtualDir',   'VariantTest');   
      VDir.AccessRead   :=   True;   
      VDir.Path   :=   'C:test';   
      VDir.AppCreate(True);     //如果没有这句的话,虚拟目录就要人为的手工创建应用程序名   
    
      VDir.SetInfo;   
  Q:如何得到WEB站点的IP和端口   
    
  A:此次以WEB站点为例   
    
  var   
      InstallPath:   String;   
      WebSite,   WebServer,   WebRoot:   Variant;   
      ar:   array   of   variant;   
  begin   
      try   
          WebSite   :=CreateOLEObject('IISNamespace');   
          WebSite   :=   WebSite.GetObject('IIsWebService',   'localhost/w3svc');   
          WebServer   :=   WebSite.GetObject('IIsWebServer',   '3');   
          ar   :=         webserver.ServerBindings;       //把IIS虚拟站点绑定的IP、端口、域名的值放入数组   
          showmessage(ar[0]);   
    
        except   
        end;   
    
  更多的请大家查看MSDN中有关ADSI的页面

相关内容推荐