XP 家庭版 IIS安装后遇到的问题

一直以来做的是桌面应用软件。所以一直都没有配置过iis,今天心血来潮,于是便对电脑进行了一番折腾。这一折腾可折腾出了问题了。

按照官方说法是XP家庭版不支持IIS。好在外国友人给出了一个方法来解决问题,方案如下

 

常见的Windows XP有两个版本,Professional和Home版。这两个版本大体上是相同的,只是在细节方面,Professional版比Home版多了一些功能。例如Professional版的XP支持双CPU,多国语言,加入域,EFS文件加密,以及IIS(Internet Information Services)。很多人在买电脑的时候了解的不够清楚,买了预装Home版XP的电脑,而需要用到或者想学习IIS的时候才发现,原来Home版根本不能安装IIS或者PWS。如果按照一般的方法,你只能升级到Windows XP Professional或者使用Windows 2000,不过仔细看看下文吧,你也可以在Windows XP Home上安装IIS了。

首先需要说明一点,就是这种做法可能会有风险,因此在你实际操作之前,最好明确你的行为会带来什么后果。并且经过这样处理安装的IIS在运行上可能存在某种未知的缺陷。还有,同Professional版的XP一样,在Home版上运行的IIS也有10个并发连接的限制。在同一个时间内,最多只能有10个人使用你提供的IIS服务。如果你还想继续,那么就往下看吧。

准备条件:一台运行了Windows XP Home版的电脑(假设是按照默认情况,把系统安装在C盘),还有一张Windows 2000 Professional的光盘(假设光驱是D盘)。

首先在运行中输入“c:\windows\inf\sysoc.inf”,系统会自动使用记事本打开sysoc.inf这个文件。在sysoc.inf中找到“[Components]”这一段,并继续找到类似“iis=iis.dll,OcEntry,iis.inf,hide,7”的一行字,把这一行替换为“iis=iis2.dll,OcEntry,iis2.inf,,7”。之后保存并关闭。

把Windows 2000 Professional的光盘插入光驱,同时按下Shift键禁止光驱的自动运行。在运行中输入“CMD”然后回车,打开命令行模式,在命令行下输入下列的两条命令,在每一行命令结束后回车:

Expand d:\i386\iis.dl_ c:\windows\system32\setup\iis2.dll

Expand d:\i386\iis.in_ c:\windows\inf\iis2.inf

这时,打开你的控制面板,并点击“添加删除程序”图标,之后点击“添加删除Windows组件”,你应该可以看见熟悉的组件添加删除界面。请仔细看,在开始菜单中显示的操作系统是Windows XP Home,但是经过修改,已经有了添加IIS的选项了。

然后你可以按照在Windows XP Professional或者Windows 2000中的方法添加IIS,在本例中我们只安装了WWW服务。系统会开始复制文件,这需要一些时间。并且在这起见,请保持Windows 2000 Professional的光盘还在光驱中。

在安装结束后,你可以打开控制面板-性能和选项-管理工具,“Internet信息服务管理”已经出现在那里。如果你想要验证IIS是否运行正常,而已打开IE,在地址栏中输入“http://localhost”然后回车,如果能显示欢迎页,则证明安装成功。

最后还有一点注意的:

如果你在安装过程中,系统需要你插入Window Whistler CD或者需要你提供exch_adsiisex.dll这个文件,那是因为你按照默认的选项安装了IIS。要解决这个问题,只要在安装IIS的时候先点击“详细信息”,然后取消对SMTP的选择(即,不要安装SMTP服务器),那么复制文件的时候就不会需要那两个文件了。

如果在你安装的到图一的位置后发现,已经显示了Internet信息服务(IIS)的安装项目,但是它们根本无法被选中,那很可能因为你使用的iis.dl_和iis.in_是从Windows XP Professional中取出的,只要换成Windows 2000 Professional中的就可以继续正常安装了。

经过验证,WWW、FTP等几个服务经过这样的修改都可以在Windows XP Home上正常运行。

---------------

如果要支持.net架构必须安装framework运行环境 。

 

 

PS:在安装时按照默认安装选项进行IIS安装,很惊喜的没有出现任何意外,一路浏览选择文件,最后安装成功。安装结束后打开管理工具,对默认网站进行相关属性设置,之后在目录下新建了一个简单的html,浏览。显示http500错误。有资料说http500错误是因为三个密码不一致。根据说明进行查找,发现缺少账户Active Directory(或SAM),(按道理说home版不应该没有该账户的,估计是系统安装的时候某一操作有误致使没有出现。)未果。暂时没有解决方法了。

在进行asp.net环境配置的时候必须要注意安装顺序:IIS-->.NET Framework。

 

IIS 500内部错误解决方案

出现IIS 500内部错误的原因有多个,但最主要的原因是IWAM_MACHINE账号在Active Directory(或SAM),IIS的metabase数据库与COM+组件中的密码不匹配不同步最成的.因此解决问题的关键在于使这三方的密码同步起来.
要使这三方的密码同步,有几种办法,下面只介绍最好用的一种,使用IIS自带的脚本进行密码同步(看来微软早就知道这方面的问题了,因此专门做了一个密码同步的脚本^_^):

操作如下:
1.在本地账号管理器或AD用户与计算机中更改IWAM_MACHINE账号的密码.假设我们改为"12345678".[本来这个账号是计算机控制的,非常复杂].
2.使用新的密码重设IIS Metabase数据库.我们需要使用IIS自带的管理脚本adsutil.运行如下的命令:
c:\Inetpub\AdminScripts> adsutil SET w3svc/WAMUserPass 12345678

系统会显示:
WAMUserPass: (String) "12345678"

提示密码更新成功.

通常情况下IIS会自动与系统账号等信息同步,但我发现我的机器上ISUR_MACHINE是同步的,但IWAM_MACHINE总是不同步,因此只好自行修改了.

3.同步COM+账号密码
同样我们要用到IIS的管理脚本synciwam.vbs,这个脚本通常会存在于c:\inetpub\adminscripts下,上一个管理脚本也在这儿放着.
命令如下:
cscript c:\inetpub\adminscripts\synciwam.vbs -v

-v参数是打开详细模式,让我们看到更新的过程,通常会如下显示:

Microsoft (R) Windows Script Host Version 5.6
版权所有(C) Microsoft Corporation 1996-2000。保留所有权利。

WamUserNameIWAM_MYSERVER
WamUserPass12345678
IIS Applications Defined:
Name, AppIsolated, Package ID
w3svc, 0, {3D14228C-FBE1-11d0-995D-00C04FD919C1}
Root, 2,
IISHelp, 2,
IISAdmin, 2,
IISSamples, 2,
MSADC, 2,
ROOT, 2,
IISAdmin, 2,
IISHelp, 2,
Root, 2,
Root, 2,

Out of process applications defined:
Count: 1
{3D14228D-FBE1-11d0-995D-00C04FD919C1}

Updating Applications:
Name: IIS Out-Of-Process Pooled Applications Key: {3D14228D-FBE1-11D0-995D-00C04
FD919C1}

密码同步成功.如果不成功先看一下这个脚本取的IIS的密码正确不正确,如果不正确请重复第二步同步IIS密码.

 

 


posted @ 2008-12-01 11:39  凌心云  阅读(685)  评论(0编辑  收藏  举报