在XP sp3下用IIS搭建http服务器总结
最近项目中一个测试发现本地html文件能正常显示,但远程不能正常显示。所以就想自己搭建个http服务器,然后把html文档放上去,对应的看本地html文件在远程环境下是否能正常显示。
所以需要将搭建一个http服务器。在网上搜了一些相关资料,但都不全。在成功搭建http服务器后,现在总结一下,并分享给大家,希望能帮助在此过程中遇到问题的同行朋友们。本过程中会遇到一些莫名的问题,我会一一列出可能的解决方法。
以下是安装的全部过程:
1.确认计算机的名字:我的电脑->右键属性->计算机名->确认计算机的名字,最好不是特长的那一种。
2.如果是完整版的xp:在控制面板->添加删除程序->添加删除windows组件->选中IIS后->下一步安装->下一步即可。
3.如果是简版的xp那一种,安装的时候问题可就多了。
一般要经过一番苦战。
3.1.首先开始->运行->进入cmd模式下运行以下命令
Regsvr32 urlmon.dll
Regsvr32 actxprxy.dll
Regsvr32 shdocvw.dll
Regsvr32 oleaut32.dll
3.2.完事之后可以装IIS了,但是你可能发现在添加删除windows组件竞然没有IIS安装的选项,
那怎么安装呀。按下以方法来吧。
3.2.1.下载IIS5.1(在我的附件中有)以下链接:
iis.rar (473.1 KB)
iis5.1xp.part2.rar (5.5 MB)
iis5.1xp.part1.rar (6 MB)
3.2.2.在运行中输入"c:/windows/inf/sysoc.inf",系统会自动使用记事本打开sysoc.inf这个文件。
在sysoc.inf中找到"[Components]"这一段,并继续找到类似"iis=iis.dll,OcEntry,iis.inf,hide,7"的一
行字,把这一行替换为"iis=iis.dll,OcEntry,iis.inf,,7"。之后保存并关闭,如果没有这句话,那么直接
把后面这一行加在最后即可以。
3.2.3.把附件两个文件IIS.DL_和IIS.IN_拷贝到一个临时的目录例如c:/temp
执行
EXPAND IIS.DL_ IIS.DLL
EXPAND IIS.IN_ IIS.INF
当然也可以用解压软件把两个文件的后缀都改为CAB,全部解压。
解出IIS.DLL及IIS.INF两个文件,
将IIS.INF复制到C:/WINDOWS/INF目录下,将IIS.DLL 复制到C:/WINDOWS/SYSTEM32/SETUP目录下.
3.2.4.现在,你可以再到开始->设置->控制面板->添加或删除程序->添加/删除Windows组件,哈哈,IIS安装出现了。
3.2.5.按第二步的操作开始安装,在安装过程中会出现寻找文件路径的问题,当然,在附件中有iis5.1,直接选中这个路径,一共三次提示,下一步吧。也可将iis5.1中的所有文件放在所要弹出寻找文件路径下(C:/WINDOWS/system32/drivers/i386),这样的话,它会直接到该目录下寻找,而不会弹出对话框。
4.IIS终于装完了。在控制面板->管理工具->internet->信息服务->打开网站->默认网站->IIS help->在右侧浏览区域内右键浏览网页,如果弹出正确的结果。ok,恭喜,你成功了。
4.1如果不成功,那你还得麻烦。要经过以下的步骤 。
在cmd下执行
cd %windir%/system32/inetsrv (或cd C:/WINDOWS/system32/inetsrv)
rundll32 wamreg.dll, CreateIISPackage (注:该行为一条命令)
注意:上面一行为一条命令,并且CreateIISPackage大小写也要拼写正确。如果分别输入的话命令CreateIISPackage是不会识别的,会指示他即不是内部或外部命令,也不是可执行程序或批处理文件。
regsvr32 asptxn.dll
注意:我的系统在这里总是出现问题,提示”asptxn.dll 中的DLLRegisterServer 失败。返回代码是:0x8004e00f”
这是没有开启MSDTC服务的原因。现开启msdtc服务:
打开控制面板 → 管理工具 → 服务 → 找到服务Distributed Transaction Coordinator → 右键属性 → 启动类型改为手动或自动然后确定 → 右键启动该服务
注意:
如果没有此服务或启动不了,说明你的机器可能没安装此服务,开始运行输入以下命令
1. iisreset /stop
2. aspnet_regiis -i
3. msdtc -install
4. 按照上面的步骤启动服务如果还是找不到服务,需要重启计算机
然后再次执行regsvr32 asptxn.dll,则会通过。
4.2按下面步骤执行。
控制面板->管理工具->组件服务 控制台根目录->组件服务->计算机->我的电脑->COM+应用程序 ,
在此步:只要4.1中的regsvr32 asptxn.dll成功执行,才会进入com+,否则进不了。
找到 IIS Out-Of-Process Pooled Applications 鼠标右键 属性->标识->把“下列用户”
调整为“系统用户-交互式用户-当前已登录的用户”。
然后点“确定”,再鼠标右键“属性”->“启动”
4.3如果再访问网站IIS help测试的话,弹出密码要求的话。按下面步骤来进行设置 。
默认WEB站点”的右键->转到“目录安全性”选项卡,点“匿名访问和验证控制”的“编辑”按钮,
回弹出匿名方法新窗口,确保“匿名访问”和“集成windows身份验证前的”对号要勾上,将“允许IIS控制密码”前面的勾去掉,
如果弹出确认密码后输入正确的密码,当然,匿名的用户必须是window的正确用户和密码,然后一路确定返回即可。
你新发布网站的时候也要使用以上的设置。
5.装.net framework,装数据库,然后你就可以防问asp的网站了。
以上过程,我们实现了IIS的安装,以下讲述Web服务器的架设:
1.从安全考虑,首先为您的web服务新建一个用户,并设置密码,笔者设置的密码为123456(后面开设web服务会用到这个密码)。
2.安装完成后,我们打开控制面版的->管理工具
主机租用默认是装好了IIS的,这就是我们安装好的IIS -> intrnet 服务管理器
3.打开web服务器扩展
4.打开IIS服务器——》网站
1)右键点击网站,点属性,选择主目录——》配置——》选项
勾选上“启用父路径”
2)在文档标签里添加你的默认首页。
3)弹出一个网站新建向导,直接下一步。输入你的网站描述,比如您的ftp名。这里输入test
4)点击下一步。
需要说明的是主机头即是你要绑定的域名,要想绑定多个域名,后面再说,参见第×××步
5)网站主目录设置(即您网站文件的存储根目录)
6)点击下一步勾选上运行脚本和执行
7)点击下一步,web服务基本架设完成。但是作为服务器,安全性是很重要的。
8)右键点击刚才建立的test网站,选择属性——》目录安全性,在身份验证和访问控制下点击“编辑”——》对匿名访问使用下列Windows用户。
点击浏览——》高级——》立即查找,选择本文刚开始建立的test用户,并填入设置的密码123456.
9)在地“5)”步提到的D:/wwwroot文件夹上也同样加上test用户权限,并删除除了系统和管理员之外的权限。
现在一个安全好用的web服务器就基本建立好了,放入您的程序可以使用了。
相应的有时会出现一些莫名的错误,相关解决方法如下:
启动IIS时提示“服务没有及时响应启动或控制请求”几种解决方法:
网上提供的IIS解决方案不一样,因为情况不一样.我把我搜索到的解决方法也提供一下.
1. 系统环境:Windowsxp+sp2,II5.0
故障现象:上午把IIS服务停止以后,程序长时间没响应,通过任务管理器关闭,启动时提示“服务没有及时响应启动或控制请求”,重启计算机未能解决。
解决办法:在Internet信息服务下有本地计算机(计算机机名),单击名键,选择断开,提示确实要断开本地计算机(计算机机名)吗?选择确定。
右键单击Internet,选择连接,计算机名填本机名称,用户名填本机管理员帐号(Administrator),确定。
2. 昨天就发现了公司我用这台电脑的IIS启动不了,今天早上试着解决它,才发现问题并不简单。找呀找呀找呀,发现"WorldWideWebPublishing"关闭了,启动也提示启动失败。静下心来,再看看其它关闭了的服务,有一项Eventlog把它启动了,再启动WorldWideWebPublishing成功。问题就在这里。
虽然“WorldWideWebPublishing”服务和SMTP服务的依存关系列表中没有提到“eventlog”服务,但“eventlog”服务不启动的话,就会出现上述问题。启动“eventlog”服务,然后启动“WorldWideWebPublishing”服务,上述问题消失。
Quote
3. IIS元数据库可能坏了。。测试一下。
Try to enumerate metabase:
1. Open a command prompt and change to the C:/Inetpub/Adminscripts folder.
2. At the command line, type "cscript adsutil.vbs enum " (without the
quotation marks).
If this command is successful, it enumerates the settings in the
metabase.
If the command is not successful, you receive the -2146893792
(0x80090020) error code.
假如有备份,把数据回复。
如果没有,参考
How to Manually Restore the Metabase When No Proper Backup Exists or When
the MMC Does Not Start
http://support.microsoft.com/?id=234429
HOW TO: Download, Install, and Remove the IIS MetaEdit 2.2 Utility
http://support.microsoft.com/?id=232068
Quote
4. 解决IIS不能启动,提示服务器没有及时响应启动或控制请求!
问题现象:
1、在IIS中站点显示停止,点击开启IIS不能启动,提示:服务器没有及时响应启动或控制请求 点击重新启动IIS提示:服务器没有及时响应启动或控制请求!
2、World Wide Web Publishing Services不能启动,提示“错误1721,资源不足,无法启动”
解决方法:
1、刚刚我也出现了那个问题,弄了一上午现在解决了,我是查出了World Wide Web Publishing Service服务没有启动,也启动不了,按照他的依存关系,把其他的服务启动了就可以了,我启动的是HTTP SSL,然后World Wide Web Publishing Service就可以用了,iis也可以了
2、有一次站点访问失败,IIS服务无法启动,我的解决思路是这样的:
先打开Administrative Tools --> Service,发现World Wide Web Publishing Service停止了。于是试图启动该服务,结果报错。
于是查看World Wide Web Publishing Services所需要依赖的服务(Dependencies),看到是IIS Admin Service。进而发现IIS Admin Service也无法启动,再查IIS Admin Service的Dependencies,查的结果是Protected Storage和RPC(Remote Procedure Call),于是启动RPC,接着顺利启动IIS Admin Service,接着启动World Wide Web Publishing Services,于是IIS恢复正常。
自己尝试根据这几种解决方法的思路肯定还有其它原因不同解决方法的.
5.对于xp的用户,有时会出现”IIS服务没有及时响应启动或控制请求错误”的信息,可能解决方法如下:
可能是有WinXp出的一个补丁上,只要把这个补丁卸载掉就可以了。
(1) 进入控制面板,运行”添加删除程序”。
(2) 在上面勾选”显示更新”,不然看不到Winxp的补丁更新包。
(3) 在列表中找到”KB939373”这个补丁,将其卸载,看看,IIS是不是可以启动了,呵呵。
今天我在新装的XP上安装IIS,结果出现如上所述的问题。打开HTML没有问题,打开ASP文件时就出现“HTTP 500”的错误信息。我把“显示友好HTTP错误信息”去掉,再打开ASP文件时出现:
Server Application Error
The server has encountered an error while loading an application during the processing of your request. Please refer to the event log for more detail information. Please contact the server administrator for assistance
出现这样的情况是主要是由于IWAM账号(在我的计算机即是IWAM_MYSERVER账号)的密码错误造成了HTTP 500内部错误。
排除了一些基本的可能性外,我在网上搜寻了一下解决办法。最后终于解决了这个问题,在此分享一下。
先启动MSDTC服务,什么是MSDTC服务?显示名称:Distributed Transaction Coordinator;描述:协调跨多个数据库、消息队列、文件系统等资源管理器的事务。如果停止此服务,则不会发生这些事务。如果禁用此服务,显式依赖此服务的其他服务将无法启动。
CMD下net start msdtc
结果显示“distributed transaction coordinator 服务不能启动”。
解决方法:
把 C:/WINDOWS/system32/dtclog 这个目录重命名(如果有的话,没有就直接省去这一步),然后重新建立该目录。
在命令行下: msdtc -resetlog
再net start msdtc,显示服务启动成功了。
然后右键我的电脑--管理--本地用户和组,给IUSR_机器名和IWAM_机器名两个用户设置密码,要一样。
接着开始--运行--打cmd,
然后cd C:/Inetpub/AdminScripts,
然后cscript.exe adsutil.vbs set w3svc/wamuserpass 你设置的密码,
然后cscript.exe adsutil.vbs set w3svc/anonymoususerpass 你设置的密码。
看一下,行了没有?如果还不行,那么
cscript.exe synciwam.vbs -v,
然后iisreset。
到一步还是不行,最后在CMD下执行以下命令:
cd %windir%/system32/inetsrv
rundll32 wamreg.dll, CreateIISPackage
regsvr32 asptxn.dll
关闭所有的IE窗口后重新打开再执行,OK了!!