当前位置: 首页 > 图文教程 > 网络编程 > ASP > 127.0.0.1无法访问,没有权限: GetObject

ASP
ASP连接SQL2005数据库连接代码
ASP程序与SQL存储过程结合使用详解
asp 小偷采集程序原理与常用函数方法
防盗链接ASP函数
asp将table生成excel文件(xls)
asp实现新评论自动发短信提示的代码
asp最简单的生成验证码代码
ASP 常见对象总结(熟悉一下利用以后的开发使用)
ASP UTF-8编码生成静态网页的函数
ASP+FSO生成的网页文件默认编码格式以及转换成UTF-8编码方法
asp Access数据备份,还原,压缩类代码
asp fso操作类
ASP 自动采集实现代码
asp 一些支付接口
ASP 递归调用 已知节点查找根节点的函数
用asp实现读取文件的最后一行的代码
用asp实现的获取文件夹中文件的个数的代码
ASP与Excel结合生成数据表和Chart图的代码
iis7 ASP+Access数据库连接错误
ASP 日期的加减运算实现代码

ASP 中的 127.0.0.1无法访问,没有权限: GetObject


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-12   浏览: 226 ::
收藏到网摘: n/a

解决127.0.0.1无法访问和0x800A0046 没有权限: 'GetObject'的方案
先感谢 D8-笨阿猪 D8-忘优草 D8-狼芽 的帮忙调试
============================================
一般,当我们在本机调试ASP动态网页时,可输入

http://localhost
http://本地计算机名
http://127.0.0.1

在当输入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)
没有权限: 'GetObject'
/localstart.asp, 第 40 行

如图片显示不完整请点击查看
那么现在就先停在这,分析下原因
开始没有“匿名访问”,需要提供帐户密码;现在有了“匿名访问”,则出现了错误。注意!这是针对直接 127.0.0.1 访问而言的。
那么“匿名访问”就是提供的帐户和密码,才使得“127.0.0.1+虚拟目录”的问题得到解决,当然也解决了直接“127.0.0.1”访问的部分问题(不需要帐号密码了)
说明这个“匿名帐户”是有用的。
但现在要解决这个新出来的问题:Microsoft VBScript 运行时错误 (0x800A0046) 没有权限: 'GetObject'
通常被提供的方法是:单独对“iisstart.asp”和“localstart.asp”取消“匿名访问”
等等,再好好看,我没有打错字
要解决“(0x800A0046) 没有权限: 'GetObject'”的方案是“单独”对这两个文件进行取消“匿名访问”
具体操作流程:在IIS中选择“localstart.asp”文件,右键,弹出菜单选择“属性”,打开面板,选择“文件安全性”进行“编辑”,取消“匿名访问”访问前的选择。
如图片显示不完整请点击查看
同样的操作流程对“iisstart.asp”再进行一般。
那么现在“http://localhost ”已经能访问,解决了Microsoft VBScript 运行时错误 (0x800A0046) 没有权限: 'GetObject'的问题。
到此,再来分析下:
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登录帐号。