IIS6配置网站的核心是新建网站后绑定IP、端口和主机头,而获取网站配置则可以直接读取metabase.xml文件或使用adsutil.vbs命令行工具。
iis6配置网站步骤:从安装到发布
在Windows Server 2003上配置IIS6网站,第一步是确保IIS组件已经安装,如果服务器没有安装,可以打开“控制面板→添加或删除程序→添加/删除Windows组件”,勾选“应用程序服务器”,然后点击“详细信息”,勾选“Internet信息服务(IIS)”,确定后开始安装,安装过程中需要系统安装光盘或指定安装源路径。
安装完成后,打开“开始→管理工具→Internet信息服务(IIS)管理器”,就能看到IIS6的主界面,左侧树形目录里,展开“网站”节点,默认会有一个“默认网站”,咱们通常不直接修改默认网站,而是新建一个独立的站点。
新建网站并设置主目录
右键点击“网站”,选择“新建→网站”,会弹出网站创建向导,向导第一步是网站描述,这个描述只是显示名称,可以填业务名称,公司官网”,第二步设置IP地址和端口,这里先保持默认,后面再改,第三步指定主目录路径,也就是网站文件存放的物理文件夹,D:webwwwroot”,第四步设置访问权限,默认勾选“读取”和“运行脚本”,如果需要上传文件,可以额外勾选“写入”,完成向导后,网站就创建出来了。
配置网站IP、端口和主机头
这是整个配置里最容易出错的环节,右键点击新建的网站,选择“属性”,切换到“网站”选项卡,在“IP地址”下拉框里,选择服务器绑定的公网或内网IP,如果服务器只有一个IP,直接选“全部未分配”也行,TCP端口默认是80,如果端口被占用,可以改成8080等自定义端口,但注意,改成非80端口后,访问时必须在URL里带上端口号。
主机头是更关键的配置,在同一个IP和端口上要部署多个网站时,必须通过主机头来区分,点击“高级”按钮,在“多网站高级配置”里填写主机头值,www.example.com”,这样当用户访问这个域名时,IIS就会把请求路由到对应的网站,如果服务器上只有一个网站,主机头可以留空,但建议还是填上,避免其他域名解析过来时访问到错误站点。
设置网站权限和默认文档
网站能访问后,还需要配置目录权限和默认文档,在网站属性里切换到“主目录”选项卡,可以设置“执行权限”为“纯脚本”,这样ASP等脚本可以运行,如果网站使用静态页面,执行权限选“无”更安全,切换到“文档”选项卡,确保“启用默认内容页”被勾选,并添加“index.html”“index.asp”等文件名,默认文档的作用是,访问“www.example.com”时,IIS自动加载这个文件,而不是显示目录列表。
配置应用程序池
IIS6的应用程序池隔离了不同网站的运行环境,在左侧树形目录里展开“应用程序池”,右键点击“DefaultAppPool”选择“属性”,可以设置回收时间、最大内存等,如果网站使用ASP.NET,建议为每个网站独立创建应用程序池,创建时,右键点击“应用程序池”选择“新建→应用程序池”,输入名称后,在网站属性“主目录”选项卡下,把“应用程序池”下拉框选到新建的池,这样做的好处是,一个站点出问题不会拖垮其他站点。
设置虚拟目录
如果网站的不同路径对应不同的物理文件夹,可以用虚拟目录来解决,右键点击网站,选择“新建→虚拟目录”,输入别名和物理路径,为“D:images”设置别名为“images”,那么访问“www.example.com/images/”时,实际读取的是“D:images”里的文件,虚拟目录的权限可以单独设置,不影响主站点的其他目录。
iis6获取网站配置的三种常用方法
配置完成后,如果需要查看或备份当前网站的完整配置,IIS6提供了三种方式,这三种方式各有适用场景,下面逐一说明。
在IIS管理器里直接查看
这是最直观的方式,打开IIS管理器,右键点击网站,选择“属性”,所有关键配置都在选项卡里,包括IP地址、端口、主机头、主目录路径、默认文档、自定义错误页等,这种方式适合快速查看单项配置,但无法一次性导出全部信息。
读取metabase.xml配置文件
IIS6的配置存储在系统盘下的C:WINDOWSsystem32inetsrvmetabase.xml文件里,这个文件是XML格式,记录了IIS6的所有网站、虚拟目录、应用程序池的配置,用记事本打开后,搜索网站描述或路径,就能找到对应的<IISWebServer>节点,节点里的属性就是网站的完整配置,包括ServerBindings属性(IP和端口)、ServerComment属性(主机头)等。
注意,metabase.xml在IIS服务运行期间会被锁定,直接修改前需要先停止IIS服务,或者在IIS管理器里右键点击服务器,选择“所有任务→保存配置到磁盘”,修改这个文件需要极其小心,改错可能导致IIS服务无法启动,建议先备份。
使用adsutil.vbs命令行工具获取配置
对于需要通过脚本批量获取配置的场景,adsutil.vbs是更好的选择,这个脚本位于C:InetpubAdminScriptsadsutil.vbs
目录下,打开命令提示符,进入该目录后,执行以下命令可以获取指定网站的所有配置:
- 获取网站列表:
cscript adsutil.vbs enum /p W3SVC - 获取具体网站配置:
cscript adsutil.vbs get /W3SVC/1/ServerBindings - 获取网站主目录:
cscript adsutil.vbs get /W3SVC/1/Root/Path
1”是网站ID,在IIS管理器里,每个网站属性框的“网站”选项卡底部可以看到“网站标识”中的ID,这种方式适合在无人值守环境下提取配置,也方便对比不同网站之间的差异,如果需要把配置导出到文件,可以用cscript adsutil.vbs get /W3SVC/1 > config.txt,把输出重定向到文本文件,便于归档。
iis6配置网站常见问题排查
配置过程中,经常遇到网站打不开或访问异常的情况,多数情况下不是配置复杂,而是忽略了几个细节。
网站权限不足导致403错误
如果访问网站时出现“HTTP 403 – 禁止访问”,先检查网站文件所在目录的NTFS权限,IIS6的IUSR_计算机名账户需要读取权限,右键点击网站文件夹,在“安全”选项卡里添加“IUSR_机器名”用户,并赋予“读取”权限,如果是ASP网站,还需要给“IIS_WPG”组分配读取和执行权限。
端口被占用导致无法启动网站
新建网站时如果端口设置为80,但系统中已有其他站点或程序占用80端口,网站会显示“停止”状态,在命令提示符下执行netstat -ano | findstr :80,查看是谁占用了80端口,如果是其他网站,就修改其中一个站点的主机头或端口,如果是非IIS程序,可以停掉该程序或改用其他端口。
主机头配置不生效
主机头配置后,需要确保DNS解析正确,如果域名解析到服务器IP,但访问时还是跳到默认网站,检查两个地方:一是IIS里是否同时存在多个相同主机头的站点,二是浏览器是否使用了代理缓存,行业共识认为,主机头匹配顺序是精确匹配优先于通配符,所以仔细检查有没有“”通配符配置。
ASP网站无法访问
IIS6默认支持ASP,但如果“Web服务扩展”里禁用了Active Server Pages,ASP页面就会返回404或500错误,打开IIS管理器,点击“Web服务扩展”,找到“Active Server Pages”,确保状态是“允许”,如果应用程序池使用的是“Network Service”账户,需要给该账户分配网站目录的读取权限。
iis6和更高版本IIS配置有哪些差异
很多老站长习惯IIS6的操作方式,换到IIS7或IIS8后一时找不到配置入口,两者的核心差异在于配置存储和权限模型。
IIS6使用metabase.xml集中存储配置,而IIS7及以后版本采用基于XML的applicationHost.config和web.config分层配置,也就是说,IIS7以后的网站配置不仅存在于服务器级别,还可以通过网站根目录下的web.config文件覆盖某些设置,这带来一个变化:IIS6里修改网站属性后,需要重启IIS服务才能生效;而IIS7大多支持动态更新,无需重启。
在权限模型上,IIS6主要依赖Windows文件系统权限,IIS7引入了“请求筛选”和“功能委派”等更细粒度的控制,如果从IIS6迁移网站到更高版本,需要重点检查应用程序池的托管管道模式,旧站点通常需要设置为“经典”模式才能兼容ISAPI过滤器。
| 对比项 | IIS6 | IIS7及以上 |
|---|---|---|
| 配置文件 | metabase.xml | applicationHost.config + web.config |
| 修改生效方式 | 需要重启IIS | 多数配置动态生效 |
| 权限模型 | Windows NTFS权限 | 请求筛选、功能委派 |
| 应用程序池 | 独立池,配置简单 | 集成.NET托管管道 |
IIS6配置网站和获取网站配置,本质上就是围绕“站点绑定”和“配置文件”两件事,把IP、端口、主机头理解透,再熟悉metabase.xml和adsutil.vbs的用法,大部分问题都能自己解决,即使IIS6已经是很老的版本,这套思路依然适用于如今的主机管理。
关于iis6配置网站和获取网站配置的常见问题
iis6配置网站后为什么局域网能访问但外网不能访问
先确认服务器防火墙是否放行80端口,在“Windows防火墙”设置里,切换到“例外”选项卡,勾选“Web服务器(HTTP)”,如果使用的是公网IP,还需要确认路由器的端口映射已经指向服务器内网IP,很多情况下是运营商封禁了80端口,可以尝试改用8080端口验证。
iis6获取网站配置时adsutil.vbs报错“找不到路径”怎么处理
报错通常是因为网站ID不对,先执行cscript adsutil.vbs enum /p W3SVC查看所有网站ID,然后使用正确的ID重新执行get命令,确保命令提示符当前目录是“C:InetpubAdminScripts”,否则需要写完整路径。
iis6配置多网站时如何区分不同站点的配置
每个网站在metabase.xml中都有唯一的<IISWebServer>节点,节点内的KeyType属性值就是网站ID,通过ID可以精确获取和修改对应网站的配置,使用adsutil.vbs时,路径中的“W3SVC/1”里的数字就是网站ID,W3SVC/2”代表第二个网站。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/553403.html




