怎样用代码创建IIS网站,并设置IIS的相关属性,比如读取,写入.注意不是虚拟目录???虚拟目录的程序网站很多,但网站不适用

解决方案 »

  1.   

    http://weblogs.asp.net/jezell/archive/2003/09/17/27869.aspx
      

  2.   


    public class SetupUtility{

    public SetupUtility()
    {}

    public int CreateWebSite(string webSiteName, string pathToRoot)
    {return CreateWebSite(webSiteName, pathToRoot, false);}

    public int CreateWebSite(string webSiteName, string pathToRoot, bool createDir)
    {
    DirectoryEntry root = new DirectoryEntry("IIS://localhost/W3SVC");
    // Find unused ID value for new web siteint 
    siteID = 1;

    foreach(DirectoryEntry e in root.Children)
    {
    if(e.SchemaClassName == "IIsWebServer")
    {
    int ID = Convert.ToInt32(e.Name);
    if(ID >= siteID)
    {siteID = ID+1;}
    }
    }

    // Create web site
    DirectoryEntry site = (DirectoryEntry)root.Invoke("Create", "IIsWebServer", siteID);
    site.Invoke("Put", "ServerComment", webSiteName);
    site.Invoke("Put", "KeyType", "IIsWebServer");
    site.Invoke("Put", "ServerBindings", ":80:");
    site.Invoke("Put", "ServerState", 2);
    site.Invoke("Put", "FrontPageWeb", 1);
    site.Invoke("Put", "DefaultDoc", "Default.aspx");
    site.Invoke("Put", "SecureBindings", ":443:");
    site.Invoke("Put", "ServerAutoStart", 1);
    site.Invoke("Put", "ServerSize", 1);
    site.Invoke("SetInfo");

    // Create application virtual directory
    DirectoryEntry siteVDir = site.Children.Add("Root", "IISWebVirtualDir");
    siteVDir.Properties["AppIsolated"][0] = 2;
    siteVDir.Properties["Path"][0] = pathToRoot;
    siteVDir.Properties["AccessFlags"][0] = 513;
    siteVDir.Properties["FrontPageWeb"][0] = 1;
    siteVDir.Properties["AppRoot"][0] = "LM/W3SVC/"+siteID+"/Root";
    siteVDir.Properties["AppFriendlyName"][0] = "Root";
    siteVDir.CommitChanges();
    site.CommitChanges();
    return siteID;
    }
    }
      

  3.   

    IIS的属性,主目录选项卡,里面有个 脚本资源访问(带复选框的) (在读取的上面)
    这个属性,用代码怎么设置??读取,可写,都能设置,就这个没找到
      

  4.   

    可以了,原来在设置网站的主目录属性时,必须获取网站的Root路径才能设置//获取刚建立WEB站点
            DirectoryEntry folderRootA = GetIISWebserver(serverComment);
            //返回根虚拟目录
            DirectoryEntry folderRoot = new DirectoryEntry(folderRootA.Path + "/Root");       folderRoot.Properties["AccessRead"][0] = true;//允许读的权限
            folderRoot.Properties["AccessWrite"][0] = true;//允许写的权限
            folderRoot.Properties["AccessScript"][0] = true;//脚本可执行
            folderRoot.Properties["AccessSource"][0] = true;//不允许读取源程序
            folderRoot.Properties["AccessExecute"][0] = false;//允许执行的权限
            folderRoot.Properties["AuthAnonymous"][0] = true;//允许匿名访问
            folderRoot.Properties["AuthNTLM"][0] = true;//允许windows集成验证
            folderRoot.Properties["ContentIndexed"][0] = true;//索引此资源
            folderRoot.Properties["DefaultDoc"][0] = "login.aspx";//默认文档
            folderRoot.Properties["EnableDefaultDoc"][0] = true;//设置默认文档
            folderRoot.Properties["AspEnableParentPaths"][0] = true;//允许父路径
            folderRoot.Properties["AppIsolated"][0] = 2;//应用程序保护 
            folderRoot.Properties["AppFriendlyName"][0] = serverComment;
            
            //folderRoot.Invoke("AppCreate", true);//允许创建应用程序
            folderRoot.CommitChanges();
      

  5.   

    怎麼得到站點的主目錄路徑呢?如默認網站的主目錄默認是:C:\Inetpub\wwwroot\