我们可以在IIS配置中手动配置web 根目录,如何用Delphi 代码实现呢?

解决方案 »

  1.   

    改注册表,以下是相关信息
    Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\W3SVC\Parameters\Virtual Roots]
    "/"="D:\\gale\\个人网站,,201"
    "/IISHelp"="c:\\windows\\help\\iishelp,,201"
      

  2.   

    to  galeboy(狂风):
       不行啊老兄,[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\W3SVC\Parameters\Virtual Roots]下的"\"值对IIS的web根目录没有任何影响,我还把其中的ControlSet001改成ControlSet002试了一下也是无效,不知这两个值究竟有何用
    还有假如是PWS呢,注册表里的值就不相同了吧?
      

  3.   

    try the following用 ADSI 创建 IIS 的虚拟目录1、使用接口
    procedure TForm3.BitBtn4Click(Sender: TObject);
    var
      Disp: IDispatch;
    begin
      Disp := IISNamespace1.GetObject('IIsWebService', 'localhost/w3svc');
      Disp := (Disp as IADsContainer).GetObject('IIsWebServer', '1');
      Disp := (Disp as IADsContainer).GetObject('IIsWebVirtualDir', 'Root');
      Disp := (Disp as IADsContainer).Create('IIsWebVirtualDir', 'DelphiADSITest');
      (Disp as IADs).Put('AccessRead', 'True');
      (Disp as IADs).Put('Path', 'c:\ADSITest');
      (Disp as IADs).SetInfo;
    end;2、使用Variant(就是类似VB和ASP的方法)
    procedure TForm2.BitBtn1Click(Sender: TObject);
    var
      WebSite, WebServer, WebRoot, VDir: Variant;
    begin
      WebSite := CreateOleObject('IISNamespace');
      WebSite := WebSite.GetObject('IIsWebService', 'localhost/w3svc');
      WebServer := WebSite.GetObject('IIsWebServer', '1');
      WebRoot := WebServer.GetObject('IIsWebVirtualDir', 'Root');
      VDir := WebRoot.Create('IIsWebVirtualDir', 'VariantTest');
      VDir.AccessRead := True;
      VDir.Path := 'C:\Test';
      VDir.SetInfo;
    end;