社区
C#
帖子详情
如何实现下列功能?
f_h_x_
2004-12-01 05:33:54
C#如何操作IIS?如何用代码建虚拟目录?
在线等>分不够再加.
...全文
98
4
打赏
收藏
如何实现下列功能?
C#如何操作IIS?如何用代码建虚拟目录? 在线等>分不够再加.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
沈逸
2004-12-01
打赏
举报
回复
public static bool EnsureNewSiteEnavaible(string bindStr)
{
string entPath = String.Format("IIS://{0}/w3svc", HostName);
DirectoryEntry ent = GetDirectoryEntry(entPath);
foreach(DirectoryEntry child in ent.Children)
{
if(child.SchemaClassName == "IIsWebServer")
{
if(child.Properties["ServerBindings"].Value != null)
{
if(child.Properties["ServerBindings"].Value.ToString() == bindStr)
{
return false;
}
}
}
}
return true;
}
#endregion
#region 获取一个网站编号的方法
/// <summary>
/// 获取一个网站的编号。根据网站的ServerBindings或者ServerComment来确定网站编号
/// </summary>
/// <param name="siteName"></param>
/// <returns>返回网站的编号</returns>
/// <exception cref="NotFoundWebSiteException">表示没有找到网站</exception>
public static string GetWebSiteNum(string siteName)
{
Regex regex = new Regex(siteName);
string tmpStr;
string entPath = String.Format("IIS://{0}/w3svc", HostName);
DirectoryEntry ent = GetDirectoryEntry(entPath);
foreach(DirectoryEntry child in ent.Children)
{
if(child.SchemaClassName == "IIsWebServer")
{
if(child.Properties["ServerBindings"].Value != null)
{
tmpStr = child.Properties["ServerBindings"].Value.ToString();
if(regex.Match(tmpStr).Success)
{
return child.Name;
}
}
if(child.Properties["ServerComment"].Value != null)
{
tmpStr = child.Properties["ServerComment"].Value.ToString();
if(regex.Match(tmpStr).Success)
{
return child.Name;
}
}
}
}
throw new NotFoundWebSiteException("没有找到我们想要的站点" + siteName);
}
#endregion
沈逸
2004-12-01
打赏
举报
回复
/// <summary>
/// 删除一个网站。根据网站名称删除。
/// </summary>
/// <param name="siteName">网站名称</param>
public static void DeleteWebSiteByName(string siteName)
{
string siteNum = GetWebSiteNum(siteName);
string siteEntPath = String.Format("IIS://{0}/w3svc/{1}", HostName, siteNum);
DirectoryEntry siteEntry = GetDirectoryEntry(siteEntPath);
string rootPath = String.Format("IIS://{0}/w3svc", HostName);
DirectoryEntry rootEntry = GetDirectoryEntry(rootPath);
rootEntry.Children.Remove(siteEntry);
rootEntry.CommitChanges();
}
#endregion
#region Start和Stop网站的方法
public static void StartWebSite(string siteName)
{
string siteNum = GetWebSiteNum(siteName);
string siteEntPath = String.Format("IIS://{0}/w3svc/{1}", HostName, siteNum);
DirectoryEntry siteEntry = GetDirectoryEntry(siteEntPath);
siteEntry.Invoke("Start", new object[] {});
}
public static void StopWebSite(string siteName)
{
string siteNum = GetWebSiteNum(siteName);
string siteEntPath = String.Format("IIS://{0}/w3svc/{1}", HostName, siteNum);
DirectoryEntry siteEntry = GetDirectoryEntry(siteEntPath);
siteEnt
沈逸
2004-12-01
打赏
举报
回复
public static DirectoryEntry GetDirectoryEntry(string entPath)
{
DirectoryEntry ent;
if(UserName == null)
{
ent = new DirectoryEntry(entPath);
}
else
{
// ent = new DirectoryEntry(entPath, HostName+"\\"+UserName, Password, AuthenticationTypes.Secure);
ent = new DirectoryEntry(entPath, UserName, Password, AuthenticationTypes.Secure);
}
return ent;
}
#region 添加,删除网站的方法
/// <summary>
/// 创建一个新的网站。根据传过来的信息进行配置
/// </summary>
/// <param name="siteInfo">存储的是新网站的信息</param>
public static void CreateNewWebSite(NewWebSiteInfo siteInfo)
{
if(! EnsureNewSiteEnavaible(siteInfo.BindString))
{
throw new DuplicatedWebSiteException("已经有了这样的网站了。" + Environment.NewLine + siteInfo.BindString);
}
string entPath = String.Format("IIS://{0}/w3svc", HostName);
DirectoryEntry rootEntry = GetDirectoryEntry(entPath);
string newSiteNum = GetNewWebSiteID();
DirectoryEntry newSiteEntry = rootEntry.Children.Add(newSiteNum, "IIsWebServer");
newSiteEntry.CommitChanges();
newSiteEntry.Properties["ServerBindings"].Value = siteInfo.BindString;
newSiteEntry.Properties["ServerComment"].Value = siteInfo.CommentOfWebSite;
newSiteEntry.CommitChanges();
DirectoryEntry vdEntry = newSiteEntry.Children.Add("root", "IIsWebVirtualDir");
vdEntry.CommitChanges();
vdEntry.Properties["Path"].Value = siteInfo.WebPath;
vdEntry.CommitChanges();
}
nga96
2004-12-01
打赏
举报
回复
分太少了些吧,呵
代码我有,不知如何给你呢
评论
功能
实现
9.8 评论
功能
实现
整理 这里以
实现
文章页面的评论列表为例 一、业务分析 模拟B站评论业务 1.1 业务逻辑 当访问某篇文章的时候,尝试获取该文章的评论列表。 按照文章评论配置(这些配置单独一张表,与文章一对一关系),进行分页展示相应的一级评论和二级评论。 ...
vue
实现
简单搜索
功能
一、概述 在vue项目中,搜索
功能
是我们经常需要使用的一个场景,
Android登录
功能
实现
APP中必备
功能
登录的
实现
代码: 效果图: 返回数据: { "description": "登录成功", "flag": "success", "id": "457" } 1、登录布局activity_main:
android studio基础
功能
实现
之定位
功能
android studio学习之百度地图定位
功能
实现
: 提示:这篇博客的主要目的是: 通过使用百度地图api,
实现
基本的定位
功能
实施步骤: 步骤: 1、 申请ak 2、 android studio 配置 3、
功能
实现
具体
实现
: 如下: 1、 申请ak: 通过搜索引擎找到百度地图开放平台 进入开放平台,找到Android地图sdk,进入然后下滑找到“获取服务密钥ak”,点击进入填写相应的信息,服务类型选择Android SDK就可以获取到ak了。如下图: 2、 Android配置可以直接参考
功能
实现
思路
首先 初始化 实例化 渲染 初始化 首先定义变量 、根据需求思考需要什么、需要多少变量、要不要深度赋值(百度深度赋值)等问题 初始化 异步获取数据data data中没有的数据而你需要(要么让后端给你、要么自己添加、添加时尽量整体数据保持一致、不管其他数据不需要这个对象或者字段、其他对象不需要这个字段、那就不妨碍对象的使用、如果对象需要你所添加的字段、那就直接处理就行了) 实例化 实例化和...
C#
111,129
社区成员
642,541
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章