IIS安装后无法访问ASP页面

windows XPIIS安装错误

 

错误现象:IIS安装好后,无法运行ASP网页,并提示500错误的解决办法

 

一、在CMD下执行以下命令:

cd %windir%\system32\inetsrv rundll32 wamreg.dll, CreateIISPackage

(这里一定要注意大小写,后面是CreateIISPackage,这中间的IISP是大写的.而且wamreg.dll,后面要加一个空格否则就会提示wamreg.dll出错 丢失条目:CreateIISPackage)

regsvr32 asptxn.dll

我的电脑到此解决了这一问题。所以没有再深入了解。

 

二、如果你的电脑还解决不了这个问题,请参考如下内容:

1、右键我的电脑-管理-本地用户和组,给“IUSR_机器名”和“IWAM_机器名”两个用户设置密码,要一样。

2、开始-运行-cmd,

然后cd c:\Inetpub\Adminscripts(我的系统在c盘,如果你是D就改D:\inetpub\adminscripts)

然后cscript.exe adsutil.vbs set w3svc/wamuserpass 你的密码

然后cscript.exe adsutil.vbs set w3svc/anonymoususerpass 你的密码

cscript.exe synciwam.vbs -v

输入了这步很多人已经可以了,

 

三、但是我还是不行,提示8004e00f的错误,那么接着往下做

1、删除注册表中的键:

? HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/MSDTC

? HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MSDTC

? HKEY_CLASSES_ROOT/CID

点击开始--运行--cmd-弹出一个黑色的框后

2、停止MSDTC服务:net stop msdtc

3、卸载MSDTC服务:msdtc -uninstall

4、重新安装MSDTC服务:msdtc -install

5、确认在事件查看器中msdtc服务已经正常启动[这步很关键,如果没有,重新启动下电脑看看

6、重新设置IIS的IWAM账号密码。[在计算机管理中的用户管理里]

7、同步IIS metabase中IWAM_MYSERVER的密码,在CMD中:c:\inetpub\adminscripts>adsutil set w3svc/wamuserpass ‘yourpassword’

8、同步COM+应用程序所用的IWAM_MYSERVER密码,在CMD中:c:\inetpub\adminscripts>cscript synciwam.vbs -v

这次再试试..不行的话就开始继续了

[1]:检查你的DTC服务(全名:Distributed Transaction Coordinator)是否可以正常启动,

如果正常的话请你跳过此步骤;如果出错,无法正常启动,请在开始菜单的运行中 运行:msdtc -

resetlog 以创建日志文件。重起机器,检查IIS是否可以正常使用,若不行继续。

[2]:在CMD下执行以下命令:

cd %windir%\system32\inetsrv

rundll32 wamreg.dll, CreateIISPackage (这里一定要注意大小写一定要一致.而且wamreg.dll,后面要加一个空格否则就会提示wamreg.dll出错丢失条目:CreateIISPackage)

regsvr32 asptxn.dll

到这里大功告成了。

 

四、如果输入127.0.0.1 提示要密码那继续

当我们安装好IIS,准备在输入http://127.0.0.1时,一般机器都需要输入用户名和密码进入,这里将分两种情况:

一种是刚新建IIS的,为了测试IIS,所以此时访问即是“系统盘\Inetpub\wwwroot”下的iisstart.asp,随之iisstart.asp又跳转到localstart.asp,并同时打开iishelp的。“localhost”、“计算机名”都没问题,但输入127.0.0.1时,弹出对话框,需要输入帐户和密码。

第二种情况是,建立了虚拟目录,通过“localhost+虚拟目录”和“计算机名+虚拟目录”都能访问,同样是“127.0.0.1+虚拟目录”不能访问。

虽然同是相同的症状,但却是不同的情况。

首先,先抛出第一条总的要诀:要使得输入http://127.0.0.1能访问,无论直接访问,还是虚拟目录,必须确保“匿名访问”的打开。

那么现在就能快速解决第二种情况的问题:打开IIS,在“默认站点”上右键,弹出菜单选择“属性”,打开面板,选择“目录安全”进行“编辑”,此时,如果“匿名访问”前没有勾选,选择勾选,“确定”就能解决这个问题。

此时访问 “127.0.0.1+虚拟目录的” 第二种已经解决

不过这个问题,遇到的人比较少,并且就这样简简单单的勾选了还不算回事,再往下看。

此时单独测试 127.0.0.1 虽然也没有了要求密码输入对话框,但新的问题出现了,同样,此刻输入http://localhost同样的是如此的错误,这也就是很多人反馈的:

错误类型:

Microsoft VBScript 运行时错误 (0x800A0046)

没有权限: 39;GetObject 39;

/localstart.asp, 第 40 行

那么现在就先停在这,分析下原因

开始没有“匿名访问”,需要提供帐户密码;现在有了“匿名访问”,则出现了错误。注意!这是针对直接 127.0.0.1 访问而言的。

那么“匿名访问”就是提供的帐户和密码,才使得“127.0.0.1+虚拟目录”的问题得到解决,当然也解决了直接“127.0.0.1”访问的部分问题(不需要帐号密码了)

说明这个“匿名帐户”是有用的。

但现在要解决这个新出来的问题:Microsoft VBScript 运行时错误 (0x800A0046) 没有权限: 39;GetObject 39;

通常被提供的方法是:单独对“iisstart.asp”和“localstart.asp”取消“匿名访问”

等等,再好好看,我没有打错字

要解决“(0x800A0046) 没有权限: 39;GetObject 39;”的方案是“单独”对这两个文件进行取消“匿名访问”

具体操作流程:在IIS中选择“localstart.asp”文件,右键,弹出菜单选择“属性”,打开面板,选择“文件安全性”进行“编辑”,取消“匿名访问”访问前的选择。

同样的操作流程对“iisstart.asp”再进行一般。

那么现在“http://localhost”已经能访问,解决了Microsoft VBScript 运行时错误 (0x800A0046) 没有权限: 39;GetObject 39;的问题。

到此,再来分析下:

1、要使得127.0.0.1能访问必须要设置“匿名访问”

2、要使得“iisstart.asp”和“localstart.asp”能正常访问,必要要单独设置取消“匿名访问”

经过了如上设置后,localhost,localhost+虚拟目录,127.0.0.1+虚拟目录都能正常访问,就剩下单独的 127.0.0.1 访问的情况,以上的分析似乎又是相矛盾的

那么,再来看看这“匿名访问”到底是个什么?

用户名是“BLUECOM\IUSR_BLUECOM”,密码是IIS控制的。其中“BLUECOM”是我这台机器的“计算机名”,各人是不同的。那么“IUSR_BLUECOM”就是“IUSR_计算机名”了。

这个“IUSR_计算机名”又是什么?它是一个“Internet来宾帐户”,是“匿名访问IIS的内置的帐户”,他是属于“Guests”组的

这就又回到当使用该帐户时,localhost会显示“(0x800A0046) 没有权限”,这似乎有点关系。

那么,我最终的比较完美的方案则是,全部采用“匿名访问”,确保所有的页面都能访问而没有密码输入框,同时,将“匿名访问”的帐户替换掉,不使用“IUSR_计算机名”帐户,而是使用我的XP管理员登录帐号。

于是重头继续调整,打开IIS,在“默认站点”上右键,弹出菜单选择“属性”,打开面板,选择“目录安全”进行:

1、“编辑”

2、“浏览”用户

3、“高级”

4、“查询”用户

5、“选择”本机XP登录用户名

6、“确定”,一直“确定”到最后

另外,在更新的时候有一点很重要,就是要选择“继承覆盖”两个文件“iisstart.asp”和“localstart.asp”,否则就需要单独把这两个文件的“匿名访问”重新加上,加上的帐号为刚才设置的XP登录帐号。

 

posted @ 2012-10-24 09:29  牛肉幹  阅读(2820)  评论(0编辑  收藏  举报