- 浏览: 73426 次
- 性别:
- 来自: 厦门
最新评论
-
BlueBing:
linyuliang 写道BlueBing 写道我想再做些修改 ...
IBatis Abator去除注释版 -
linyuliang:
BlueBing 写道我想再做些修改 可否提供下源码呢晚上我回 ...
IBatis Abator去除注释版 -
linyuliang:
xiaohu7924 写道为什么我用这个生成的名字不是你说的驼 ...
IBatis Abator去除注释版 -
xiaohu7924:
为什么我用这个生成的名字不是你说的驼锋名字,还是老样子
IBatis Abator去除注释版 -
BlueBing:
我想再做些修改 可否提供下源码呢
IBatis Abator去除注释版
using System;
using System.Collections.Generic;
using System.Text;
using System.DirectoryServices;
using System.Text.RegularExpressions;
using System.Collections;
namespace IISControlService
{
/**//// <summary>
/// 这个类是静态类。用来实现管理IIS的基本操作。
/// </summary>
public class IISManager
{
#region UserName,Password,HostName的定义
public static string HostName
{
get
{
return hostName;
}
set
{
hostName = value;
}
}
public static string UserName
{
get
{
return userName;
}
set
{
userName = value;
}
}
public static string Password
{
get
{
return password;
}
set
{
if (UserName.Length <= 1)
{
throw new ArgumentException("还没有指定好用户名。请先指定用户名");
}
password = value;
}
}
public static void RemoteConfig(string hostName, string userName, string password)
{
HostName = hostName;
UserName = userName;
Password = password;
}
private static string hostName = "localhost";
private static string userName;
private static string password;
#endregion
#region 根据路径构造Entry的方法
/**//// <summary>
/// 根据是否有用户名来判断是否是远程服务器。
/// 然后再构造出不同的DirectoryEntry出来
/// </summary>
/// <param name="entPath">DirectoryEntry的路径</param>
/// <returns>返回的是DirectoryEntry实例</returns>
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;
}
#endregion
#region 添加,删除网站的方法
/**//// <summary>
/// 创建一个新的网站。根据传过来的信息进行配置
/// </summary>
/// <param name="siteInfo">存储的是新网站的信息</param>
public static string CreateNewWebSite(NewWebSiteInfo siteInfo)
{
if (!EnsureNewSiteEnavaible(siteInfo.BindString))
{
throw new SiteExistException("已经有了这样的网站了。" + 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();
//设置站点IP地址、端口、主机头
newSiteEntry.Properties["ServerBindings"].Value = siteInfo.BindString;
//设置站点名称
newSiteEntry.Properties["ServerComment"].Value = siteInfo.CommentOfWebSite;
//设置站点的访问权限
newSiteEntry.Properties["AccessFlags"].Value = 512 | 1;
newSiteEntry.CommitChanges();
DirectoryEntry vdEntry = newSiteEntry.Children.Add("root", "IIsWebVirtualDir");
vdEntry.CommitChanges();
//创建应用程序,并指定应用程序池为"HostPool","true"表示如果HostPool不存在,则自动创建
vdEntry.Invoke("AppCreate3", new object[]{ 2, "HostPool", true });
vdEntry.Properties["Path"].Value = siteInfo.WebPath;
//设置应用程序名称
vdEntry.Properties["AppFriendlyName"].Value = "HostCreator";
vdEntry.CommitChanges();
return newSiteNum;
}
/**//// <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);
siteEntry.Invoke("Stop", new object[] { });
}
#endregion
#region 确认网站是否相同
/**//// <summary>
/// 确定一个新的网站与现有的网站没有相同的。
/// 这样防止将非法的数据存放到IIS里面去
/// </summary>
/// <param name="bindStr">网站邦定信息</param>
/// <returns>真为可以创建,假为不可以创建</returns>
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 Exception("没有找到我们想要的站点" + siteName);
}
#endregion
#region 获取新网站id的方法
/**//// <summary>
/// 获取网站系统里面可以使用的最小的ID。
/// 这是因为每个网站都需要有一个唯一的编号,而且这个编号越小越好。
/// 这里面的算法经过了测试是没有问题的。
/// </summary>
/// <returns>最小的id</returns>
public static string GetNewWebSiteID()
{
ArrayList list = new ArrayList();
string tmpStr;
string entPath = String.Format("IIS://{0}/w3svc", HostName);
DirectoryEntry ent = GetDirectoryEntry(entPath);
foreach (DirectoryEntry child in ent.Children)
{
if (child.SchemaClassName == "IIsWebServer")
{
tmpStr = child.Name.ToString();
list.Add(Convert.ToInt32(tmpStr));
}
}
list.Sort();
int i = 1;
foreach (int j in list)
{
if (i == j)
{
i++;
}
}
return i.ToString();
}
#endregion
}
#region 新网站信息结构体
public struct NewWebSiteInfo
{
private string hostIP; // The Hosts IP Address
private string portNum; // The New Web Sites Port.generally is "80"
private string descOfWebSite; // 网站主机头。例如"www.dns.com.cn"
private string commentOfWebSite;// 网站注释。一般也为网站的网站名。
private string webPath; // 网站的主目录。例如"e:\tmp"
public NewWebSiteInfo(string hostIP, string portNum, string descOfWebSite, string commentOfWebSite, string webPath)
{
this.hostIP = hostIP;
this.portNum = portNum;
this.descOfWebSite = descOfWebSite;
this.commentOfWebSite = commentOfWebSite;
this.webPath = webPath;
}
public string BindString
{
get
{
return String.Format("{0}:{1}:{2}", hostIP, portNum, descOfWebSite);
}
}
public string CommentOfWebSite
{
get
{
return commentOfWebSite;
}
}
public string WebPath
{
get
{
return webPath;
}
}
}
#endregion
public class SiteExistException : Exception
{
public SiteExistException(string message) : base(message) { }
}
}
using System.Collections.Generic;
using System.Text;
using System.DirectoryServices;
using System.Text.RegularExpressions;
using System.Collections;
namespace IISControlService
{
/**//// <summary>
/// 这个类是静态类。用来实现管理IIS的基本操作。
/// </summary>
public class IISManager
{
#region UserName,Password,HostName的定义
public static string HostName
{
get
{
return hostName;
}
set
{
hostName = value;
}
}
public static string UserName
{
get
{
return userName;
}
set
{
userName = value;
}
}
public static string Password
{
get
{
return password;
}
set
{
if (UserName.Length <= 1)
{
throw new ArgumentException("还没有指定好用户名。请先指定用户名");
}
password = value;
}
}
public static void RemoteConfig(string hostName, string userName, string password)
{
HostName = hostName;
UserName = userName;
Password = password;
}
private static string hostName = "localhost";
private static string userName;
private static string password;
#endregion
#region 根据路径构造Entry的方法
/**//// <summary>
/// 根据是否有用户名来判断是否是远程服务器。
/// 然后再构造出不同的DirectoryEntry出来
/// </summary>
/// <param name="entPath">DirectoryEntry的路径</param>
/// <returns>返回的是DirectoryEntry实例</returns>
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;
}
#endregion
#region 添加,删除网站的方法
/**//// <summary>
/// 创建一个新的网站。根据传过来的信息进行配置
/// </summary>
/// <param name="siteInfo">存储的是新网站的信息</param>
public static string CreateNewWebSite(NewWebSiteInfo siteInfo)
{
if (!EnsureNewSiteEnavaible(siteInfo.BindString))
{
throw new SiteExistException("已经有了这样的网站了。" + 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();
//设置站点IP地址、端口、主机头
newSiteEntry.Properties["ServerBindings"].Value = siteInfo.BindString;
//设置站点名称
newSiteEntry.Properties["ServerComment"].Value = siteInfo.CommentOfWebSite;
//设置站点的访问权限
newSiteEntry.Properties["AccessFlags"].Value = 512 | 1;
newSiteEntry.CommitChanges();
DirectoryEntry vdEntry = newSiteEntry.Children.Add("root", "IIsWebVirtualDir");
vdEntry.CommitChanges();
//创建应用程序,并指定应用程序池为"HostPool","true"表示如果HostPool不存在,则自动创建
vdEntry.Invoke("AppCreate3", new object[]{ 2, "HostPool", true });
vdEntry.Properties["Path"].Value = siteInfo.WebPath;
//设置应用程序名称
vdEntry.Properties["AppFriendlyName"].Value = "HostCreator";
vdEntry.CommitChanges();
return newSiteNum;
}
/**//// <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);
siteEntry.Invoke("Stop", new object[] { });
}
#endregion
#region 确认网站是否相同
/**//// <summary>
/// 确定一个新的网站与现有的网站没有相同的。
/// 这样防止将非法的数据存放到IIS里面去
/// </summary>
/// <param name="bindStr">网站邦定信息</param>
/// <returns>真为可以创建,假为不可以创建</returns>
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 Exception("没有找到我们想要的站点" + siteName);
}
#endregion
#region 获取新网站id的方法
/**//// <summary>
/// 获取网站系统里面可以使用的最小的ID。
/// 这是因为每个网站都需要有一个唯一的编号,而且这个编号越小越好。
/// 这里面的算法经过了测试是没有问题的。
/// </summary>
/// <returns>最小的id</returns>
public static string GetNewWebSiteID()
{
ArrayList list = new ArrayList();
string tmpStr;
string entPath = String.Format("IIS://{0}/w3svc", HostName);
DirectoryEntry ent = GetDirectoryEntry(entPath);
foreach (DirectoryEntry child in ent.Children)
{
if (child.SchemaClassName == "IIsWebServer")
{
tmpStr = child.Name.ToString();
list.Add(Convert.ToInt32(tmpStr));
}
}
list.Sort();
int i = 1;
foreach (int j in list)
{
if (i == j)
{
i++;
}
}
return i.ToString();
}
#endregion
}
#region 新网站信息结构体
public struct NewWebSiteInfo
{
private string hostIP; // The Hosts IP Address
private string portNum; // The New Web Sites Port.generally is "80"
private string descOfWebSite; // 网站主机头。例如"www.dns.com.cn"
private string commentOfWebSite;// 网站注释。一般也为网站的网站名。
private string webPath; // 网站的主目录。例如"e:\tmp"
public NewWebSiteInfo(string hostIP, string portNum, string descOfWebSite, string commentOfWebSite, string webPath)
{
this.hostIP = hostIP;
this.portNum = portNum;
this.descOfWebSite = descOfWebSite;
this.commentOfWebSite = commentOfWebSite;
this.webPath = webPath;
}
public string BindString
{
get
{
return String.Format("{0}:{1}:{2}", hostIP, portNum, descOfWebSite);
}
}
public string CommentOfWebSite
{
get
{
return commentOfWebSite;
}
}
public string WebPath
{
get
{
return webPath;
}
}
}
#endregion
public class SiteExistException : Exception
{
public SiteExistException(string message) : base(message) { }
}
}
发表评论
-
实现GridView控件的删除多条记录功能系列(1)
2005-08-10 14:15 1471在Asp.Net 2.0中新增的控件GridView可 ... -
实现GridView控件的删除多条记录功能系列(2)
2005-08-10 14:55 1324在上一篇中,我们已经开发了需要的CheckBox控件, ... -
实现GridView控件的删除多条记录功能系列(3)
2005-08-11 12:18 1334本篇将讲述如何解决GridView控件中使用Check ... -
[转]C#正则表达式小结
2007-09-24 11:38 1220地址: http://www.cnblogs.co ... -
[转]全面剖析C#正则表达式
2007-09-24 11:41 1390地址:http://fineboy.cnblogs.com/ ... -
(转贴)VS.NET下水晶报表分发时的问题及解决
2007-10-18 17:27 1180一、载入报表时报错 ... -
(转贴)图解使用VS.NET部署含水晶报表的网站
2007-10-18 17:56 2139Crystal Report ,中文名称“水晶报表”,因为做报 ... -
[转]VS2005 web程序自定义安装包的制作
2007-10-23 10:28 2122利用VS2005的“Web安装项目”建立安装包很难对安装过程进 ... -
[转]使用C#进行点对点通讯和文件传输(通讯基类部分)
2007-10-24 10:59 935最近一个项目要用到点对点文件传输,俺就到处找资料写程序,最后终 ... -
[转]使用C#进行点对点通讯和文件传输(发送接收部分)
2007-10-24 11:00 1689上面介绍了通讯的基类,下面就是使用那个类进行发送和接收的部分: ... -
[转载]C#中串口通信编程
2007-10-24 11:01 4525原文及源代码位置:http://bbs.msproject.c ... -
[转]C#多线程编程实例实战
2007-10-24 11:02 1679单个写入程序/多个阅读程序在.Net类库中其实已经提供了实现, ... -
[转]实现同时只允许运行一个程序实例
2007-10-24 11:06 1140方法一: /// <summary> /// 从这 ... -
[转]IIS虚拟目录控制类
2007-10-24 11:08 450using System;using System.Data; ... -
[转]C# 调用API,实现注销远程登录本机的用户
2007-10-24 11:08 1854using System;using System.Manag ... -
[转]C#的usb通讯编程
2007-10-24 11:10 2820using System;using System.Colle ... -
[转]使用.NET实现断点续传
2007-10-24 11:11 1334断点续传的原理 在了解HTTP断点续传的原理之前,先来说说HT ... -
[转]Datagridview 实现二维表头
2007-10-26 16:42 2345最近把我们的b/s系统,增加智能客户端的功能。确实智能客户端是 ... -
[转]Web项目下NHibernate的Session管理的解决方案
2007-11-07 10:47 3397NHibernate的Session的管理一直是个问题,在系统 ... -
[转] NHibernate对像版本控制使用示例
2007-11-07 10:49 1259<version name="Version& ...
相关推荐
这对于多站点管理尤其有用,能帮助确定资源分配的优先级。 在提供的压缩包文件列表中,"IISInfoView.exe"可能是一个专用的IIS信息查看工具,它可以提取并显示IIS服务器的各种详细信息,包括但不限于站点设置、应用...
本篇文章将详细探讨如何使用IIS管理类来创建站点、虚拟目录以及删除虚拟目录。 一、创建IIS站点 创建IIS站点是为Web服务分配一个特定的标识,通常包括一个主机头名称、IP地址和端口号。以下是一步一步创建IIS站点...
这通常涉及到使用System.DirectoryServices和System.DirectoryServices.AccountManagement命名空间中的类,如DirectoryEntry和DirectorySearcher,它们允许我们以编程方式操作Active Directory服务,包括管理IIS站点...
**IIS站点与目录备份工具详解** 在IT行业中,IIS(Internet Information Services)是微软提供的一个用于Windows操作系统的Web服务器软件,它允许我们在本地或远程服务器上托管各种Web应用程序和服务。IIS站点备份...
总的来说,IIS多站点管理系统源码展示了如何利用C#和IIS管理API来高效地管理和控制Web服务器上的多站点环境,提供了一个方便的工具,使得系统管理员无需手动操作IIS管理控制台即可完成常见任务。
生成一个新的IIS站点是通过ServerManager类的CreateSite方法实现的。首先,你需要指定新站点的名称、绑定信息(包括IP地址、端口和主机头)以及物理路径。例如: ```csharp ServerManager iisManager = new Server...
通过掌握这些,你就能编写出枚举IIS站点模块的易语言程序,实现对IIS服务器的有效管理和监控。 请注意,进行此类操作时,确保你有适当的权限,并遵循安全编程原则,以防止潜在的安全风险。同时,由于易语言的动态...
5. **文件系统操作**:创建IIS站点通常涉及配置文件的读写,如`web.config`或`applicationHost.config`。开发者需要熟悉易语言的文件操作命令,如打开、读取、写入和关闭文件。 6. **错误处理和调试**:编写这类...
在实际操作中,使用HDIISBackup这样的工具可以显著提高IIS站点管理的效率,简化备份和恢复流程,从而降低IT人员的工作负担。对于任何IIS管理员来说,了解并掌握这样的工具是提高工作效率和保障服务稳定性的必备技能...
在.NET 2008框架下,动态创建IIS...总结,动态创建IIS站点是.NET 2008框架下的一项核心功能,主要通过DirectoryEntry类和其Properties属性来实现。了解和掌握这项技术,对于提升开发效率和管理水平具有重要意义。
通过编写IIS创建站点的程序,我们可以实现自动化创建和管理IIS站点,提高工作效率。 易语言IIS创建站点的模块通常会涉及以下几个关键知识点: 1. **IIS管理对象**:在易语言中,需要通过调用Windows API或者使用...
首先,要使用C#与IIS进行交互,我们需要引用`System.Web.Administration`命名空间,这个命名空间包含了管理IIS所需的各种类。通过`ServerManager`类,我们可以读取、创建、修改和删除IIS的配置信息。 以下是一个...
这个项目可能包含了一个用户友好的界面,允许用户直观地管理IIS站点和服务,同时也可能提供了命令行工具供自动化脚本使用。 5. **API使用示例**:例如,创建一个新的IIS站点可以这样实现: ```csharp ...
《易语言IIS站点流量查看》 在信息技术领域,服务器管理是至关重要的环节,而IIS...通过掌握以上知识点,开发者不仅可以实现IIS站点流量查看,还可以进一步开发出更多针对服务器管理的实用工具,提升运维效率。
2. **站点创建**:传统方式下,创建IIS站点需要在IIS管理器中手动配置,包括设置站点名称、绑定(IP地址、端口号和主机头)、应用程序池以及物理路径等。而“右键建站”工具则自动完成这些步骤,大大提高了效率。 3...
总结起来,使用C#自动化安装IIS并创建网站涉及对Windows管理接口的理解,特别是PowerShell的使用。通过这个过程,我们可以提高部署效率,减少手动设置的工作量,特别是在大规模部署或持续集成的场景下。
通过检查每个子项的`SchemaClassName`属性,我们可以判断其是否为"IIsWebServer",即IIS站点。 对于每个IIS站点,我们打印出站点的名称、物理路径和`ServerBindings`属性。`ServerBindings`包含站点的IP地址、端口...
【标题】中的“易语言IIS站点流量查看源码”表明了这个压缩包包含的是用易语言编写的一个程序,该程序能够用来监控和查看Internet Information Services(IIS)服务器上的站点流量情况。易语言是中国本土开发的一种...
"IIS Location"指的是IIS站点的位置,即IIS服务正在监听并服务请求的网络位置,这可能是通过HTTP、HTTPS等协议。在进行日志管理时,了解站点位置有助于确定哪些日志需要被处理。 "Log Tool"则直指该软件的主要功能...
`Microsoft.Web.Administration`库是IIS管理API的核心,包含一系列类,每个类都代表IIS中的一个特定实体,如`ServerManager`、`Site`、`Application`、`VirtualDirectory`等。以下是一些主要类的简要说明: 1. **...