简述IIS的工作原理(我是初学者,希望答案通俗易懂)

作者&投稿:蔽佩 (若有异议请与网页底部的电邮联系)
IIS的工作原理是什么~

我们此处只谈IIS的控制,一般来说,我们操作IIS一般都是对虚拟目录的操作,因此我将此列为主要的内容来讲。

首先我们要搞清楚IIS的层次结构的问题,下面是我从国外找来的一张图,很好的解释了IIS的层次结构:

为了搞清楚IIS的控制语法,我们就必须搞清上图,了解IIS元数据(Metabase)的层次结构。图中的每一个节点称之Key,而每个Key可以包含一个或多个值,这些值就是我们说的属性(properties),IIS元数据中的Key与IIS中的元素是相符的,因此元数据中的属性值的设定是会影响IIS中的设置。这就是我们编程的基本思路和核心。

另外还要了解一下Schema这个概念。它表示IIS中构架的名称,即可以理解IIS元数据中Key的类型,具体点说就是指每个结点的类型。我们知道,IIS中有虚拟目录,普通目录,以及文件这些东东,而这些都属于IIS的元素,区分的他们的标帜就是Schema。比如虚拟目录的Schema就是"IIsVirtualDir",普通目录就是"IIsWebDir"。这样我们添加、删除目录时,IIS就知道我们添加的是虚拟目录还是普通目录。

创建虚拟目录

DirectoryEntry是.Net给我们的一大礼物,他的名字我们就知道他的功能--目录入口。使用过ADSI的人都知道操作IIS,WinNT这些时,我们还需要提供他们的Path,操作IIS时,这个Path的格式为:
IIS://ComputerName/Service/Website/Directory

ComputerName:即操作的服务器的名字,可以是名字也可以是IP,经常用的就是localhost

Service:即操作的服务器,IIS中有Web,也有FTP,还有SMTP这些服务,我们主要是操作IIS的Web功能,因此此处就是"W3SVC",如果是FTP则应是"MSFTPSVC"

WebSite:一个IIS服务中可以包括很多的站点,这个就用于设置操作的站点。他的值是一个数字,默认是1,表示缺省站点,如果有其它,则从1开始依次类推。

Directory:不用说,即操作的目录名称,一个站点一般顶层目录为"ROOT",其它目录则是他的孩子(Child)。

首先我们获取一个站点的顶层目录(根目录):

DirectoryEntry rootfolder = new DirectoryEntry("IIS://localhost/W3SVC/1/ROOT");

如果我们创建这个对象是没有发生异常,则表示这个目录是真实存在的。

下面我们来添加新的虚拟目录,比如我们要加的是"Aspcn":

DirectoryEntry newVirDir = rootfolder.Children.Add("Aspcn","IIsWebVirtualDir");

newVirDir.Invoke("AppCreate",true);

newVirDir.CommitChanges();

rootfolder.CommitChanges();

创建目录的思路很简单,即在根目录的子集(rootfolder.Children)中再添加一条记录,这里使用的是DirectoryEntries类中的Add方法,它返回的是一个DirectoryEntry,表示新加入的目录,第一个参数是虚拟目录的名字,第二个则是Schema的类名以表明我们加入的目录类型。然后再使用DirectoryEntry的Invoke方法,调用ADSI中的"AppCreate"方法将目录真正创建(似乎不走这一步也可以创建目录成功,但是为了保险起见,大家还是用吧),最后便是依次调用新、根目录的CommitChanges方法,确认此次操作。

在创建新目录时,我们也可以同时给这个目录的属性赋值,但是我的实战经验告诉我,最好不要这样做,如果创建时就赋值,将有很多属性不能赋值成功,比如重要的表示真实目录的Path属性。因此飞刀建议大家最好是先创建目录,然后再赋值,即更新目录信息。

更新虚拟目录

相信大家对IIS都比较熟悉,了解IIS中一些重要的设置,如可读(AccessRead)、可写(AccessWrite)、可执行(AccessExecute)等。这些都可通过对DirectoryEntry的Properties属性集合的赋值来实现。赋值可以通过两种方式来完成:

第一种是调用Properties集合的Add方法,如:

dir.Properties["AccessRead"].Add(true);

第二种是对第一个索引值赋值:

dir.Properties["AccessRead"][0] = true;

这两种方法都是可行的。具体是要看你的喜好了。

在进行赋值之前我们还是要确定要要赋值的目标吧:)这里我们使用DirectoryEntries类的Find方法,如:

DirectoryEntry de = rootfolder.Children.Find("Aspcn","IIsVirtualDir");

找到了,我们就可以赋值了。赋值时一定要好好看看啊,虚拟目录的属性值可以超多,一查一大堆。。:(太多了,飞刀我也不重复了,大家去微软的站点上查:)

比较常用的有:AccessRead,AccessWrite,AccessExecute,AccessScript,DefaultDoc,EnableDefaultDoc,Path

删除虚拟目录

删除虚拟目录的方法也很简单,就是找到你要删除的虚拟目录,然后调用AppDelete方法。

DirectoryEntry de = rootfolder.Children.Find("Aspcn","IIsVirtualDir");

de.Invoke("AppDelete",true);

rootfolder.CommitChanges();

还有一种方法,就是调用Root目录的Delete方法。

object[] paras = new object[2];

paras[0] = "IIsWebVirtualDir"; //表示操作的是虚拟目录

paras[1] = "Aspcn";

rootfolder.Invoke("Delete",paras);

rootfolder.CommitChanges();

喜欢哪一种就看编程习惯了:))

关于我写的类

我写的那个类库,将这些进一步简化了。只需要调用一下Connect()方法,就可直接操作Create,Delete方法了,程序可以进一步简化,并且支持批量操作。

IIS 是微软公司 研发的 专门架设网页服务器的 HTML ASP ASPX 后缀的文件都可以架设!!

首先我们要搞清楚IIS的层次结构的问题,了解IIS元数据(Metabase)的层次结构。每一个节点称之Key,而每个Key可以包含一个或多个值,这些值就是我们说的属性(properties),IIS元数据中的Key与IIS中的元素是相符的,因此元数据中的属性值的设定是会影响IIS中的设置。这就是我们编程的基本思路和核心。

另外还要了解一下Schema这个概念。它表示IIS中构架的名称,即可以理解IIS元数据中Key的类型,具体点说就是指每个结点的类型。我们知道,IIS中有虚拟目录,普通目录,以及文件这些东东,而这些都属于IIS的元素,区分的他们的标帜就是Schema。比如虚拟目录的Schema就是"IIsVirtualDir",普通目录就是"IIsWebDir"。这样我们添加、删除目录时,IIS就知道我们添加的是虚拟目录还是普通目录。

创建虚拟目录

DirectoryEntry是.Net给我们的一大礼物,他的名字我们就知道他的功能--目录入口。使用过ADSI的人都知道操作IIS,WinNT这些时,我们还需要提供他们的Path,操作IIS时,这个Path的格式为:
IIS://ComputerName/Service/Website/Directory

ComputerName:即操作的服务器的名字,可以是名字也可以是IP,经常用的就是localhost

Service:即操作的服务器,IIS中有Web,也有FTP,还有SMTP这些服务,我们主要是操作IIS的Web功能,因此此处就是"W3SVC",如果是FTP则应是"MSFTPSVC"

WebSite:一个IIS服务中可以包括很多的站点,这个就用于设置操作的站点。他的值是一个数字,默认是1,表示缺省站点,如果有其它,则从1开始依次类推。

Directory:不用说,即操作的目录名称,一个站点一般顶层目录为"ROOT",其它目录则是他的孩子(Child)。

首先我们获取一个站点的顶层目录(根目录):

DirectoryEntry rootfolder = new DirectoryEntry("IIS://localhost/W3SVC/1/ROOT");

如果我们创建这个对象是没有发生异常,则表示这个目录是真实存在的。

下面我们来添加新的虚拟目录,比如我们要加的是"Aspcn":

DirectoryEntry newVirDir = rootfolder.Children.Add("Aspcn","IIsWebVirtualDir");

newVirDir.Invoke("AppCreate",true);

newVirDir.CommitChanges();

rootfolder.CommitChanges();

创建目录的思路很简单,即在根目录的子集(rootfolder.Children)中再添加一条记录,这里使用的是DirectoryEntries类中的Add方法,它返回的是一个DirectoryEntry,表示新加入的目录,第一个参数是虚拟目录的名字,第二个则是Schema的类名以表明我们加入的目录类型。然后再使用DirectoryEntry的Invoke方法,调用ADSI中的"AppCreate"方法将目录真正创建(似乎不走这一步也可以创建目录成功,但是为了保险起见,大家还是用吧),最后便是依次调用新、根目录的CommitChanges方法,确认此次操作。

在创建新目录时,我们也可以同时给这个目录的属性赋值,但是我的实战经验告诉我,最好不要这样做,如果创建时就赋值,将有很多属性不能赋值成功,比如重要的表示真实目录的Path属性。因此飞刀建议大家最好是先创建目录,然后再赋值,即更新目录信息。

更新虚拟目录

相信大家对IIS都比较熟悉,了解IIS中一些重要的设置,如可读(AccessRead)、可写(AccessWrite)、可执行(AccessExecute)等。这些都可通过对DirectoryEntry的Properties属性集合的赋值来实现。赋值可以通过两种方式来完成:

第一种是调用Properties集合的Add方法,如:

dir.Properties["AccessRead"].Add(true);

第二种是对第一个索引值赋值:

dir.Properties["AccessRead"][0] = true;

这两种方法都是可行的。具体是要看你的喜好了。

在进行赋值之前我们还是要确定要要赋值的目标吧:)这里我们使用DirectoryEntries类的Find方法,如:

DirectoryEntry de = rootfolder.Children.Find("Aspcn","IIsVirtualDir");

找到了,我们就可以赋值了。赋值时一定要好好看看啊,虚拟目录的属性值可以超多,一查一大堆。。:(太多了,飞刀我也不重复了,大家去微软的站点上查:)

比较常用的有:AccessRead,AccessWrite,AccessExecute,AccessScript,DefaultDoc,EnableDefaultDoc,Path

删除虚拟目录

删除虚拟目录的方法也很简单,就是找到你要删除的虚拟目录,然后调用AppDelete方法。

DirectoryEntry de = rootfolder.Children.Find("Aspcn","IIsVirtualDir");

de.Invoke("AppDelete",true);

rootfolder.CommitChanges();

还有一种方法,就是调用Root目录的Delete方法。

object[] paras = new object[2];

paras[0] = "IIsWebVirtualDir"; //表示操作的是虚拟目录

paras[1] = "Aspcn";

rootfolder.Invoke("Delete",paras);

rootfolder.CommitChanges();

同意 就是 你自己好好看看


IIS服务器的使用与管理怎样做
1. 保持Windows升级:你必须在第一时间及时地更新所有的升级,并为系统打好一切补丁。考虑将所有的更新下载到你网络上的一个专用的服务器上,并在该机器上以Web的形式将文件发布出来。通过这些工作,你可以防止你的Web服务器接受直接的Internet访问。2. 使用IIS防范工具:这个工具有许多实用的优点,然而,...

·我装了iis但是还运行不了ASP?打开时提示无权查看该页??
有关IIS 正常运行所需的最小权限的更多信息,请参阅下列知识库文章: 271071 IIS 5.0 工作时需要的最小 NTFS 权限 在识别针对 Dllhost.exe 进程的"access denied"(拒绝访问)错误信息后,请使用 Regedt32 在注册表中对 NTFS 权限进行必要的修改。 5. 在系统事件日志中,查找以下事件: Source:DCOM Event ID: 10010...

iis 的 http 500 内部服务器错误怎么解决???
我的计算机的NETBIOS名字是MYSERVER,因此我的计算机上IWAM账号的名字就是IWAM_MYSERVER,这一点与IIS匿名账号ISUR_MACHINE的命名方式非常相似。 IWAM账号建立后被Active Directory、IIS metabase数据库和COM+应用程序三方共同使用,账号密码被三方分别保存,并由操作系统负责这三方保存的IWAM密码的同步工作。按常理说,由...

IIS虚拟目录主目录为“另一台计算机上的共享”,磁盘缓存写入错误!_百度...
创建FTP虚拟目录的工作也是在IIS管理工具中完成的,具体如下: 1.在IIS管理控制树中右击需要重建虚拟目录的FTP站点,在弹出菜单中指向,单击。 2.打开虚拟目录创建向导,如右上图,在向导欢迎对话框中单击。 3.如左上图,在对话框中的栏中指定虚拟目录别名。这里所谓的别名,是指虚拟目录在IIS管理器中的有效名称,...

怎么配置IIS服务器
很多人都系换自己建站,那么你知道如何配置IIS服务器吗?跟着我一起学习如何配置IIS服务器吧。配置IIS服务器的方法 安装IIS 在Windows XP 专业版中,IIS并不是默认安装的,而是作为可选的组件,现在我们要建立一个站点,就可以选择安装它,方法很简单,放入XP光盘,然后运行光盘,在运行界 面中选择添...

NETWORK SERVICE是什么
SeBatchLogonRight)• 从网络访问此计算机(SeNeorkLogonRight)因此,Neork Service 帐户提供了访问上述位置的权限,具有充当 IIS 6 工作进程的进程标识的充足权限,以及具有访问网络的权限。更详细请登陆微软网站:microsoft\/china\/tech\/munity\/columns\/insider\/iisi1203.mspx ...

iis7如何搭建网站iis7搭建网站教程
如何在Win7系统中构建Web服务器 工具\/原材料 Windows7操作系统 方法\/步骤 打开控制面板,选择进入“程序”,双击“打开或关闭Windows服务”,在弹出窗口中选择“互联网信息服务”下的所有选项,点击确定开始更新服务。2.更新完成后,打开浏览器,输入“http:\/\/localhost\/”并按回车键。如果此时出现IIS7的...

iis怎么新建iis怎么新建虚拟目录
第三,安装IIS 1.如果系统中没有安装IIS服务器,打开控制面板,单击开始添加\/删除程序,在弹出的对话框中选择添加\/删除Windows组件,在Windows组件向导对话框中选择Internet信息服务(IIS),单击下一步,按照向导的说明完成IIS的安装。四。配置网站 1.打开IIS管理器,右键单击“网站”并新建->:网站 2.打开...

简述iis安装web服务器的步骤?
以下是在 Windows 操作系统上安装 IIS(Internet Information Services)Web 服务器的基本步骤:打开“控制面板”:单击 Windows 操作系统的“开始”菜单,选择“控制面板”。安装 IIS 功能:在“控制面板”,选择“程序和功能”,然后选择“打开或关闭 Windows 功能”。在弹出窗口中,找到“Internet ...

什么叫伺服器
伺服器软件 伺服器软件的定义如前面所述,伺服器软件工作在客户端-伺服器或浏览器-伺服器的方式,有很多形式的伺服器,常用的包括: 文件伺服器 - 如Novell的NetWare 数据库伺服器 - 如Oracle数据库伺服器 MySQL PostgreSQL Microsoft SQL Server等 邮件伺服器 - Sendmail Postfix Qmail Microsoft Exchange...

三都水族自治县19686601052: IIS工作原理 -
毋柏典必: 我们此处只谈IIS的控制,一般来说,我们操作IIS一般都是对虚拟目录的操作,因此我将此列为主要的内容来讲. 首先我们要搞清楚IIS的层次结构的问题,下面是我从国外找来的一张图,很好的解释了IIS的层次结构: 为了搞清楚IIS的控制语法,...

三都水族自治县19686601052: 如何使用IIS架设WEB服务器 -
毋柏典必: 在服务器上安装iis;打开iis,进入默认网站,右键单击,关闭iis服务;将默认网站的路径指向公司的网站所在的目录,如对端口无要求,直接保存即可;启动iis,即可浏览公司的网页.IIS是Internet Information Services的缩写,是一个World Wide Web server.通过iis可以架设web服务器.

三都水族自治县19686601052: 求seo和sfo以及IIS的详细说明及其工作原理 -
毋柏典必: 来提高排名,所以Google也成为了全世界SEOers的主要研究对像,为此Google官司方网站专门有一页介绍SEO,并表明Google对SEO的态度,在其它网站打开本站图片同样占一个iis...目前SEO技术被很多目光短浅的人,用一些SEO作弊...

三都水族自治县19686601052: asp.net的工作原理是什么? -
毋柏典必: asp.net的基本执行原理和asp相似,本地的请求,通过iis执行影响,返回html流,与asp相比,增加了回传的执行.服务器端的dll支持也更方便了.

三都水族自治县19686601052: IIS架设WEB服务器 -
毋柏典必: 1、安装iis,使本机及内网可以用 2、单机上网下载“端口映射器”软件,打开80端口,防火墙也要例外80;有使用路由器,则打开端口映射,不同的路由器可能不一样操作 3、外面输入你的公网ip,就可以访问了

三都水族自治县19686601052: 谁知道 IIS或ASP小服务器的工作原理是什么??
毋柏典必: asp是一种解释语言 iis把动态asp代码解释成静态的html页面 传回客户端 想自己编写?这样的话要实现的应该是 1.客户端请求的接收 2. asp的解释 3.把解释完成的html通过协议http, 端口(80或自定义)发送回客户端 具体怎么编我就帮不了你了

三都水族自治县19686601052: 简述共享上网的基本原理?
毋柏典必: 系统IIS服务 就是最简单的文件共享服务

三都水族自治县19686601052: 请简单叙述IIS的概念及其新特性? -
毋柏典必: IIS是Internet信息服务(Internet Infomation Server)的缩写.它是一种Web服务,主要包括WWW服务器、FTP服务器等.它使得在Intranet(局域网)或Internet(因特网)上发布信息成了一件很容易的事.

三都水族自治县19686601052: IIS的概念是什么 -
毋柏典必: IIS 是在WIN2000或者WIN2003里,给网页程序提供解析的软件 那么空间就是用IIS这个软件划分的 你可以在自己电脑上安装WIN2003系统,用IIS建立自己的网站 但是呢,这只能通过你的外网IP地址访问,如果你的IP是固定的,就不需要买空间了 但是外网IP一般都是动态的,需要使用花生壳之类的动态域名软件.

三都水族自治县19686601052: 一台服务器上绑定了一个ip地址,通过iis使用主机头发布了多个网站,当客户输入域名由dns解析到ip -
毋柏典必: IIS服务器收到发送到该IP的HTTP请求以后,会检索数据包中的数据,浏览器输入的域名就是请求的标识字符.主机头的作用就是来区分IIS下不同的网站,主机头可以看作是这个网站的标识,他和请求数据包中的域名表示要一致才能返回页面结果.IIS作为web服务器,本身就是支持多网站内容,必然会有机制来拆数据包分析,进行内容匹配的.启用主机头内容的IIS服务器,如果有访问者直接用正确的IP访问,那么数据包中肯定没有和主机头一致的标识,这样就不能打开网页.如果你主机头只添加了www开头的内容,即使你DNS上指定了没有www的A记录,因为不一致,还是不能打开网页.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网