现在的位置: 首页 > 综合 > 正文

C#:在IIS中创建一个WEB站点

2011年03月07日 ⁄ 综合 ⁄ 共 2356字 ⁄ 字号 评论关闭

DirectoryEntry 类

    DirectoryEntry 类封装 Active Directory 层次结构中的节点或对象。
    命名空间:System.DirectoryServices
    程序集:System.DirectoryServices(在 system.directoryservices.dll 中)

    与 DirectoryEntry 组件关联的类可以与任何 Active Directory 服务提供程序一起使用。当前的一些提供程序包括 Internet 信息服务 (IIS)、轻量目录访问协议 (LDAP)、Novell NetWare 目录服务 (NDS) 和 WinNT。

DirectoryEntry.Invoke 方法

    对本机 Active Directory 对象调用方法。

public Object Invoke (
    
string methodName,
    
params Object[] args
)

 

参数

methodName

要调用的方法名。

args

对象类型的数组,它包含要调用的方法的参数。

返回值

被调用的方法的返回值。
    

        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");
            
// 为新WEB站点查找一个未使用的ID
            int siteID = 1;
            
foreach(DirectoryEntry e in root.Children)
            
{
                
if(e.SchemaClassName == "IIsWebServer")
                
{
                    
int ID = Convert.ToInt32(e.Name);
                    
if(ID >= siteID){siteID = ID+1;}
                }

            }

            
// 创建WEB站点
            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");
            
// 创建应用程序虚拟目录
            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;
        }

抱歉!评论已关闭.