C#在IIS中创建站点和虚拟目录(源码下载)

首先需要引用
using System.DirectoryServices;
以下为创建IIS站点和虚拟目录的主要类代码(全部源码下载)< p>


ExpandedBlockStart.gifContractedBlock.gif
/**/ /// <summary>
/// 获取新网站ID
/// </summary>
/// <returns></returns>

private   string  GetNewWebSiteID()
ExpandedBlockStart.gifContractedBlock.gif
{
    
int iWebSiteCount = 0;

    DirectoryEntry siteEntry 
= new DirectoryEntry("IIS://localhost/w3svc");

    
foreach (DirectoryEntry childEntry in siteEntry.Children)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
{
        
if (childEntry.SchemaClassName == "IIsWebServer") iWebSiteCount++;
    }


    
return (iWebSiteCount + 1).ToString();
}

ExpandedBlockStart.gifContractedBlock.gif
/**/ /// <summary>
/// 获取新站点端口,默认为当前最大端口号加一
/// </summary>
/// <returns></returns>

private   string  GetNewSitePort()
ExpandedBlockStart.gifContractedBlock.gif
{
    
int iDefault = 8000;

    DirectoryEntry siteEntry 
= new DirectoryEntry("IIS://localhost/w3svc");

    
foreach (DirectoryEntry childEntry in siteEntry.Children)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
{
        
if (childEntry.SchemaClassName == "IIsWebServer")
ExpandedSubBlockStart.gifContractedSubBlock.gif        
{
            
if (childEntry.Properties["ServerBindings"].Value != null)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
{
                
string strSettings = childEntry.Properties["ServerBindings"].Value.ToString();

                
int iSettingPort = int.Parse(strSettings.Substring(strSettings.IndexOf(':'+ 1, (strSettings.LastIndexOf(':'- strSettings.IndexOf(':'- 1)));

                iDefault 
= iSettingPort > iDefault ? iSettingPort : iDefault;
            }

        }

    }


    
return (iDefault + 1).ToString();
}

ExpandedBlockStart.gifContractedBlock.gif
/**/ /// <summary>
/// 判断网站是否已经存在
/// </summary>
/// <param name="strSiteName"></param>
/// <returns></returns>

private   bool  IsExist( string  strSiteName)
ExpandedBlockStart.gifContractedBlock.gif
{
    
bool blExist = false;

    DirectoryEntry siteEntry 
= new DirectoryEntry("IIS://localhost/w3svc");

    
foreach (DirectoryEntry childEntry in siteEntry.Children)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
{
        
if (childEntry.SchemaClassName == "IIsWebServer")
ExpandedSubBlockStart.gifContractedSubBlock.gif        
{
            
if (childEntry.Properties["ServerComment"].Value != null)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
{
                
if (childEntry.Properties["ServerComment"].Value.ToString() == strSiteName) blExist = true;
            }

        }

    }


    
return blExist;
}

ExpandedBlockStart.gifContractedBlock.gif
/**/ /// <summary>
/// 创建网站
/// </summary>
/// <param name="strPort"></param>
/// <param name="strSiteName"></param>
/// <param name="strFilePath"></param>
/// <returns></returns>

private  DirectoryEntry CreateNewSite( string  strSiteName,  string  strFilePath)
ExpandedBlockStart.gifContractedBlock.gif
{
    
try
ExpandedSubBlockStart.gifContractedSubBlock.gif    
{
        strSitePort 
= GetNewSitePort();

        DirectoryEntry deyRoot 
= new DirectoryEntry("IIS://localhost/w3svc");

        DirectoryEntry siteEntry 
= deyRoot.Children.Add(GetNewWebSiteID(), "IIsWebServer");

        siteEntry.Properties[
"ServerComment"].Value = strSiteName;

        siteEntry.Properties[
"ServerBindings"].Value = String.Format("{0}:{1}:{2}""", strSitePort, "");

        siteEntry.Properties[
"ServerAutoStart"].Value = true;

        
//添加虚拟目录,网站本身没有路径,默认的路径即名称为Root的虚拟目录
        DirectoryEntry rootEntry = siteEntry.Children.Add("Root""IIsWebVirtualDir");
        rootEntry.Properties[
"Path"].Value = strFilePath;                       //文件夹路径
        rootEntry.Properties["AccessRead"][0= true;                           //读取权限
        rootEntry.Properties["AccessExecute"][0= false;                       //执行(如ISAPI应用程序或CGI)
        rootEntry.Properties["AccessWrite"][0= true;                          //写入
        rootEntry.Properties["AccessScript"][0= true;                         //执行脚本(如ASP)
        rootEntry.Properties["EnableDirBrowsing"][0= true;                   //浏览
        rootEntry.Properties["DefaultDoc"][0= "UserLogin.aspx,Default.aspx";  //设置默认文档,多值情况下中间用逗号分割
        rootEntry.CommitChanges(); siteEntry.CommitChanges(); return rootEntry;
    }

    
catch (Exception ex)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
{
        MessageBox.Show(ex.Message.ToString() 
+ "站点创建失败!"); return null;
    }

}

ExpandedBlockStart.gifContractedBlock.gif
/**/ /// <summary>
/// 创建虚拟目录
/// </summary>
/// <param name="strDirName">虚拟目录名称</param>
/// <param name="strDirPath">虚拟目录路径</param>
/// <param name="siteEntry">要创建虚拟目录的原站点</param>
/// <returns></returns>

private   bool  CreateVirtualDirectory( string  strDirName,  string  strDirPath, DirectoryEntry rootEntry)
ExpandedBlockStart.gifContractedBlock.gif
{
    
try
ExpandedSubBlockStart.gifContractedSubBlock.gif    
{
        DirectoryEntry childEntry 
= rootEntry.Children.Add(strDirName, "IIsWebVirtualDir");

        childEntry.Invoke(
"AppCreate"true);
        childEntry.Properties[
"Path"].Value = strDirPath;// @"D:\公司项目\盘县联网\SafetyProduce\SafetyNet\";        //文件夹路径
        childEntry.Properties["AppFriendlyName"][0= strDirName;//应用程序名称 
        childEntry.Properties["AccessRead"][0= true;           //读取权限
        childEntry.Properties["AccessExecute"][0= false;       //执行(如ISAPI应用程序或CGI)
        childEntry.Properties["AccessWrite"][0= true;          //写入
        childEntry.Properties["AccessScript"][0= true;         //执行脚本(如ASP)
        childEntry.Properties["EnableDirBrowsing"][0= true;   //浏览
ExpandedSubBlockStart.gifContractedSubBlock.gif
        childEntry.Properties["DefaultDoc"][0= "UserLogin.aspx,Default.aspx"/**/////设置默认文档,多值情况下中间用逗号分割

        childEntry.CommitChanges(); rootEntry.CommitChanges(); 
return true;
    }

    
catch (Exception ex)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
{
        MessageBox.Show(ex.Message.ToString() 
+ "虚拟目录" + strDirName + "创建失败!"); return false;
    }

}

以下为调用代码

// 创建站点
DirectoryEntry rootEntry  =  CreateNewSite( " 天科行业主管平台 " , strDirectoryPath  +   " WebPage " );

if  (rootEntry  !=   null )
ExpandedBlockStart.gifContractedBlock.gif
{
    
//创建虚拟目录
    CreateVirtualDirectory("SafetyNet", strDirectoryPath + "SafetyNet", rootEntry); 
    CreateVirtualDirectory(
"SafetySupervise", strDirectoryPath + "SafetySupervise", rootEntry); 
}

 全部源码下载

转载于:https://www.cnblogs.com/zhangpengshou/archive/2008/06/30/1232210.html

功能说明: ZYCH网站管理系统 V04基本模块有: 新闻模块、单页模块、产品模块、下载模块、会员模块、视频模块、留言模块、 系统设置:对网站全局进行设置。一键更改网站状态、网站头部风格、修改网站标题、设置网站基本资料和网站系统属性等。 管 理 员:管理员分为超级管理员或普通管理员,超级管理员具有网站最高权限,普通管理员部分功能被限制。 模板显示设置:可设置各栏目显示条数、分页记录数等。 栏目导航:对网站导航菜单以及菜单排序等进行管理。 HTML静态:一键开启静态功能,实现页面生成HTML,访问速度更快。 安全设置:SQL注入管理,后台可设置SQL防注入参数等,SQL注入记录,可封锁攻击者IP等。 后台登陆记录:可查看管理员登陆的相关记录、IP、登陆时间等。 页面管理:创建和管理企业资料如:企业简介、企业荣誉、相关资质、服务特点、营销网络等。并具有单独设置关键词等功能。 新闻增加:新闻可设置标题颜色、是否外部链接、新闻略缩图、是否推荐、新闻点击等。 新闻管理:可分类查看新闻、修改新闻、批量推荐、删除新闻等。新闻分类。 相册管理:可分类查看照片、修改照片、批量推荐、删除照片等。相册分类。 服务项目:管理、添加、删除 团队管理:管理、分类、添加、删除! 服务流程:管理、添加、删除 产品管理:产品共有二级分类。产品略缩图、产品价格等。支持在线购买。产品推荐等。 下载功能:下载分类管理、程序语言、运行平台、推荐等级、程序大小、下载统计等功能。 会员管理:前台会员注册,后台修改会员资料,设置是否注册审核等。 会员订单:后台处理产品订单、在线付款。 广告管理:增加图片、文字、FLASH广告,定义尺寸、类型、生成JS调用。 幻灯管理:新闻幻灯、幻灯修改等。首页与频道页分开展示 招聘管理:在线发布招聘信息、修改、删除、管理职位。查看前台用户投至简历。 应聘管理:会员投递简历可直接到邮箱网站系统和后台。 友情链接:增加文字或图片链接、按文字或图片分类管理。 留言管理:留言增加是否审核功能,增加回复功能。前台发表和显示留言列表。 数据管理:数据库压缩、备份、还原 搜索引擎SEO:本程序已经进行简单SEO优化,大部门页面均可单独设置关键词等。默认模板代码优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值