IIS建站常见问题(错误)原因分析及其解决方法整理汇总(备查)

来源:互联网   编辑:思良  发表时间:2015-07-13  关注度:1122  

一、症状、原因与解决办法例举

问题1:未启用父路径 

症状举例: 

Server.MapPath() 错误 ’ASP 0175 : 80004005′ 

不允许的 Path 字符 

/0709/dqyllhsub/news/OpenDatabase.asp,行 4 

在 MapPath 的 Path 参数中不允许字符 ’..’。 

原因分析: 

许多Web页面里要用到诸如../格式的语句(即回到上一层的页面,也就是父路径),而IIS6.0出于安全考虑,这一选项默认是关闭的。 

解决方法: 

在IIS中 属性->主目录->配置->选项中。把”启用父路径“前面打上勾。确认刷新。

————————————————————————————— 

问题2:ASP的Web扩展配置不当(同样适用于ASP.NET、CGI) 

症状举例: 

HTTP 错误 404 - 文件或目录未找到。 

原因分析: 

在IIS6.0中新增了web程序扩展这一选项,你可以在其中对ASP、ASP.NET、CGI、IDC等程序进行允许或禁止,默认情况下ASP等程序是禁止的。 

解决方法: 

在IIS中的Web服务扩展中选中Active Server Pages,点击“允许”。

—————————————————————————————– 

问题3:身份认证配置不当 

症状举例: 

HTTP 错误 401.2 - 未经授权:访问由于服务器配置被拒绝。 

原因分析:IIS 支持以下几种 Web 身份验证方法: 

匿名身份验证 

IIS 创建 IUSR_计算机名称 帐户(其中 计算机名称 是正在运行 IIS 的服务器的名称),用来在匿名用户请求 Web 内容时对他们进行身份验证。此帐户授予用户本地登录权限。你可以将匿名用户访问重置为使用任何有效的 Windows 帐户。

基本身份验?

使用基本身份验证可限制对 NTFS 格式 Web 服务器上的文件的访问。使用基本身份验证,用户必须输入凭据,而且访问是基于用户 ID 的。用户 ID 和密码都以明文形式在网络间进行发送。 

Windows 集成身份验证 

Windows 集成身份验证比基本身份验证安全,而且在用户具有 Windows 域帐户的内部网环境中能很好地发挥作用。在集成的  Windows 身份验证中,浏览器尝试使用当前用户在域登录过程中使用的凭据,如果尝试失败,就会提示该用户输入用户名和密码。如果你使用集成的  Windows 身份验证,则用户的密码将不传送到服务器。如果该用户作为域用户登录到本地计算机,则他在访问此域中的网络计算机时不必再次进行身份验证。 

摘要身份验证 

摘要身份验证克服了基本身份验证的许多缺点。在使用摘要身份验证时,密码不是以明文形式发送的。另外,你可以通过代理服务器使用摘要身份验证。摘要身份验证使用一种挑战/响应机制(集成 Windows 身份验证使用的机制),其中的密码是以加密形式发送的。 

.NET Passport 身份验证 

Microsoft .NET Passport 是一项用户身份验证服务,它允许单一签入安全性,可使用户在访问启用了  .NET Passport 的 Web 站点和服务时更加安全。启用了 .NET Passport 的站点会依靠 .NET Passport 中 央服务器来对用户进行身份验证。但是,该中心服务器不会授权或拒绝特定用户访问各个启用了 .NET Passport 的站点。 

解决方法: 

根据需要配置不同的身份认证(一般为匿名身份认证,这是大多数站点使用的认证方法)。认证选项在IIS的属性->安全性->身份验证和访问控制下配置。

—————————————————————————————–

 问题4:IP限制配置不当 

症状举例: 

HTTP 错误 403.6 - 禁止访问:客户端的 IP 地址被拒绝。 

原因分析: 

IIS提供了IP限制的机制,你可以通过配置来限制某些IP不能访问站点,或者限制仅仅只有某些IP可以访问站点,而如果客户端在被你阻止的IP范围内,或者不在你允许的范围内,则会出现错误提示。 

解决方法: 

进入IIS的属性->安全性->IP地址和域名限制。如果要限制某些IP地址的访问,需要选择授权访问,点添加选择不允许的IP地址。反之则可以只允许某些IP地址的访问。

————————————————————————————— 

问题5:IUSR账号被禁用 

症状举例: 

HTTP 错误 401.1 - 未经授权:访问由于凭据无效被拒绝。

原因分析: 

由于用户匿名访问使用的账号是IUSR_机器名,因此如果此账号被禁用,将造成用户无法访问。 

解决办法: 

控制面板->管理工具->计算机管理->本地用户和组,将IUSR_机器名账号启用。 

问题6:NTFS权限设置不当 

症状举例: 

HTTP 错误 401.3 - 未经授权:访问由于 ACL 对所请求资源的设置被拒绝。 

原因分析: 

Web客户端的用户隶属于user组,因此,如果该文件的NTFS权限不足(例如没有读权限),则会导致页面无法访问。 

解决办法: 

进入该文件夹的安全选项卡,配置user的权限,至少要给读权限。关于NTFS权限设置这里不再馈述。

——————————————————————————————- 

问题7:IWAM账号不同步 

症状举例: 

HTTP 500 - 内部服务器错误 

原因分析: 

IWAM账号是安装IIS时系统自动建立的一个内置账号。IWAM账号建立后被Active Directory、IIS metabase数据库和 COM+应用程序三方共同使用,账号密码被三方分别保存,并由操作系统负责这三方保存的IWAM密码的同步工作。系统对IWAM账号的密码同步工作有时会 失效,导致IWAM账号所用密码不统一。 

解决办法: 

如果存在AD,选择开始->程序->管理工具->Active Directory用户和计算机。为IWAM账号设置密码。 

运行c:\Inetpub\AdminScripts>adsutil SET w3svc/WAMUserPass +密码 同步IIS metabase数据库密码 

运行cscript c:\inetpub\adminscripts\synciwam.vbs -v 同步IWAM账号在COM+应用程序中的密码

——————————————————————————————— 

问题8:MIME设置问题导致某些类型文件无法下载(以ISO为例) 

症状举例: 

HTTP 错误 404 - 文件或目录未找到。 

原因分析: 

IIS6.0取消了对某些MIME类型的支持,例如ISO,致使客户端下载出错。 

解决方法: 

在IIS中 属性->HTTP头->MIME类型->新建。在随后的对话框中,扩展名填入.ISO,MIME类型是application。

——————————————————————————————— 

问题9:故障表现:

1、首先进入组件服务,查看组件服务/计算机/我的电脑/COM+应用程序,结果报错“COM+  无法与 Microsoft 分布式事务协调程序交谈”,无法查看里面的对象。

2、进入事件查看器,发现msdtc服务没有正常启动。

解决方法:

1、删除注册表中的键:

• HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC

• HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC

• HKEY_CLASSES_ROOT\CID

2、停止MSDTC服务:net stop msdtc

3、卸载MSDTC服务:msdtc -uninstall

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

5、卸载IIS,重新安装IIS,访问asp程序看看,应该OK了

(如果还不行就再继续以下步骤来修复)

6、确认在事件查看器中msdtc服务已经正常启动[这步很关键,如果没有,重新启动下电脑看看],这里有个技巧,查看MSDTC服务是否启动,执行net stop msdtc,提示正在停止和停止成功就对了,再msdtc - install下就OK.

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

8、同步IIS metabase中IWAM_MYSERVER的密码:

c:\inetput\adminscripts>adsutil set w3svc/wamuserpass “yourpassword”

9、同步COM+应用程序所用的IWAM_MYSERVER密码:

c:\inetput\adminscripts>cscript synciwam.vbs -v

—————————————————————————————-

问题10:故障表现:

FAT32格式下:

无法显示网页

试图访问的网页出现问题,无法显示。

……………………………

技术信息(用于支持人员)

错误类型:

Microsoft VBScript 运行时错误 (0×800A0046)

没有权限: ‘GetObject’

/localstart.asp, 第 40 行

…………………………..

解决方案:

ADSI管理对象不能使用匿名访问.所以就出现权限问题..       

给站点加上集成windows验证,并去掉匿名验证一切OK

—————————————————————————————– 


 

二、常见问题和答案Q&A方式

IIS常见错误解决办法

Q :为什么我的ASP页面到windows2003后就不能执行了,执行ASPX正常。

A :windows2003中默认没有启用ASP支持,在IIS的Web Service Extensions里找到Active Server Pages,将ALLOW选上,就可以了。

Q :我的IIS只要asp文件有错,就显示HTTP500错误,但是却不显示出错的详细信息。以前能够显示究竟是那个文件的那一行出错,但现在却不显示。

A :在IE的Internet选项中选高级,选中“显示友好的HTTP错误”即可。

Q :在Windows XP家庭版如何安装IIS?

A :windows XP家庭版不能安装IIS,请升级到专业版。

Q :为何我访问本机地址要求输入用户和密码?

A :将IIS设置中匿名帐号权限打开。再则检查所在目录的NTFS权限。

Q :我的ASP文件包含文件的时候提示Active Server Pages 错误 ’ASP 0131’不允许的父路径,如何解决?

A :在站点属性中选择主目录-配置-应用程序选项,将“启用父目录”选上。

Q :为何我的IIS老是当机?

A :1、检查你设置的脚本超时时间,不能过长。2、检查你的程序是否有对象和连接没有关闭。3、依次停止各个用户的服务,看看是不是有耗大资源的用户程序。

Q :win200 server+iis,为什么在网页上,有的中文htm链接路径可以显示,有的不行?

A :’转换双字节字符为合法的URL传输字串

function getUrlEncodel(byVal Url)

Dim i,code

getUrlEncodel=""

if trim(Url)="" then exit function

for i=1 to len(Url)

code=Asc(mid(Url,i,1))

If code<0 Then code = code + 65536

If code>255 Then

getUrlEncodel=getUrlEncodel&"%"&Left(Hex(Code),2)&"%"&Right(Hex(Code),2)

else

getUrlEncodel=getUrlEncodel&mid(Url,i,1)

end if

next

end function 


 

Q :IIS 所有的exe文件从上面的目录都不能下载,显示404 文件找不到 是什么原因?还是哪里设置错误?

A :设置一下http头--MIME类型,新建一个类型扩展名为EXE,类型为:application/octet-stream

Q :在管理工具中找不到IIS了。

A :在C:\WINDOWS\system32\inetsrv中找到快捷方式重新建立。

Q :IIS无法支持ASP了,重启N次都不行。

A :在应用程序程序配置中检查.asp文件是不是已经映射到C:\WINDOWS\system32\inetsrv\asp.dll。若无,则添加。

三、特殊现象及其解决方法

1.网站DW里面修改后,IIS浏览无法显示修改后内容的解决方法

inetinfo.exe主要用于支持微软Windows IIS网络服务的除错。这个程序对你系统的正常运行是非常重要的。

出品者: Microsoft Corp.

属于: Microsoft Windows Server Suites

(1)   关了上面的进程

(2)   停止IIS 并点退出关闭IIS

(3)   再启动IIS就好了

2. window2003装了iis后,网站后台验证码不显示了

internet 信息服务--网站--默认网站--属性--主目录--配置--选项--启用父路径扣上,问题就解决。

前提是你要保证验证码以前能用。

还一个如果是XP下,就要下载XP验证码显示补丁。

实在不行的话,就去掉验证码 判断部分的代码.这样验证码就不用输入 也可以进去管理了!


 

四、IIS错误代码含义及解决方法

IIS错误分析:

1. 现象:HTTP 错误 404 - 文件或目录未找到

分析解决:此类问题十分常见。原因是在IIS6.0中新增了“web程序扩展”这一项,而里面的很多服务默认都是禁止的,本文前面也提到过。直接在“web程序扩展”里启用“Active Server Pages”即可。

2. 现象:HTTP 错误 401.2 - 未经授权:访问由于服务器配置被拒绝

分析解决:造成此类的原因应该是身份验证设置的问题,一般将其设置为匿名身份认证就行了,这是大多数站点使用的认证方法。

3.现象:类似于Server.MapPath() 错误 'ASP 0175 : 80004005'的出错信息

分析解决:IIS6.0出于安全考虑,默认关闭了父路径(诸如../格式的语句),只需在“主目录-配置-选项”,将“启用父路径”勾选即可。

iIS“500错误”

IIS报500错误是在虚拟主机的管理中很平常的一件事情,通常500错误的意思就是没有权限访问出现500错误的原因有很多

一般来说,如果程序出错,那么在浏览器内会返回给用户一个友好的错误提示,统一称之为服务器500错误以下介绍3种办法解决:

途径之一:您必须在http中能够正确的获得错误信息,方法为:请打开浏览器,选择工具,internet选项,高级,在高级中的浏览

项目里面有一个“显示http友好错误提示”的复选框,请取消该复选框,并关掉窗口重新打开IE浏览器,就可获得正确的错误提示,

之后,您就可根据该错误提示检查您具体的出错原因了

途径之二:删除系统SAM文件后,IIS报500错

还有一个通过多次尝试后找到的解决办法:

①在管理工具中修改IWAM_Myserver[Myserver为本地计算机名]的密码假设改成scidc

②然后在CMD中脩改IIS內部帳號為剛脩改得新密碼

在c:/inetpub/adminscripts/目录下輸入

cscriptexe adsutilvbs set w3svc/wamuserpass "scidc"

修改成功后,有如下提示wamuserpass: string "******"

③然后在管理工具中的IWAM_My Server用户的属性→用户组中确认处于Guest组内然后在本地用户和组中的组里右击Users组属性,

然后添加成员 Authenticated Users和Interactive,然后确定

④上述工作做完后就是同步COM+组件帐号 在CMD中输入cscript c:/inetpub/adminscripts/synciwamvbs -v 回车帐号同步完毕

⑤最后就是在服务管理中重启一次World Wide Web Publishing Service服务好了,问题解决


 

0112 参数丢失。

0113 脚本超时。超过了脚本运行的最长时间。可以通过为 Server.scriptTimeout 属性指定一个新值或在 IIS 管理工具中修改值来更改此限制。

0114 对象不可用于自由线程。应用程序对象仅接受自由线程对象;而对象 '%s' 不可用于自由线程。

0115 意外错误。外部对象中发生一个可捕捉的错误 (%X)。脚本无法继续运行。

0116 脚本分隔符结束标记丢失。脚本块缺少脚本结束标记 (%>)。

0117 脚本结束标记丢失。脚本块缺少脚本结束标记 (</script>) 或标记结束符号 (>)。

0118 对象的结束标记丢失。对象块缺少对象结束标记 (</OBJECT>) 或标记结束符号 (>)。

0119 Classid 或 Progid 属性丢失。对象实例 '|' 在对象标记中需要有效的 Classid 或 Progid。

0120 Runat 属性无效。脚本标记或对象标记的 Runat 属性只能有 'Server' 值。

0121 对象标记中的范围无效。对象实例 '|' 的作用范围不能是 Application 或 Session。要创建有 Session 或 Application 作用范围的对象实例,请将在 Global.asa 文件中加入 Object 标记。

0122 对象标记中的范围无效。对象实例 '|' 必须有 Application 或 Session 作用范围。这将应用于所有在 Global.asa 文件内创建的对象。

0123 缺少 Id 属性。缺少 Object 标记所需的 Id 属性。

0124 Language 属性丢失。缺少 Object 标记所需的 Language 属性。

0125 属性结束标记丢失。'|' 属性的值没有结束分隔符。

0126 未找到 Include 文件。未找到 Include 文件 '|'。

0127 HTML 注释的结束标记丢失。HTML 注释或在服务器端的包含文件缺少结束标记 (-->)。

0128 File 或 Virtual 属性丢失。Include 文件名必须用 File 或 Virtual 属性指定。

0129 未知的脚本语言。服务器上找不到脚本语言 '|'。

0130 File 属性无效。File 属性 '|' 不能以斜杠或反斜杠开始。

0131 不允许的父路径。Include 文件 '|' 不能包含 '..' 来表示父目录。

0132 编译错误。无法处理 Active Server Page '|'。

0133 ClassID 属性无效。对象标记有一个无效的 ClassID '|'。

0134 ProgID 属性无效。对象有一个无效的 ProgID '|'。

0135 循环包含。文件 '|' 包含它本身(可能是非直接地包含)。请检查包含文件中的其他 Include 语句。

0136 对象实例名无效。对象实例 '|' 试图使用一个保留名称。这个名称被 Active Server Pages 的内部对象使用。

0137 全局脚本无效。脚本块必须是允许的 Global.asa 过程之一。Global.asa 文件中不允许在 <% ... %> 内使用脚本指令。允许的过程名称是 Application_OnStart、Application_OnEnd、Session_OnStart 或 Session_OnEnd。

0138 脚本块嵌套。脚本块不可放在另一个脚本块内。

0139 嵌套对象。对象标记不能放在另一个对象标记内。

0140 页命令次序有误。@ 命令必须是 Active Server Page 中的第一个命令。 

0141 页命令重复。@ 命令只可以在 Active Server Page 中使用一次。

0142 线程令牌错误。无法打开线程令牌。

0143 应用程序名无效。未找到有效的应用程序名称。

0144 初始化错误。初始化时页级别的对象列表失败。

0145 新应用程序失败。无法添加新的应用程序。

0146 新会话失败。无法添加新的会话。

0147 500 服务器错误。

0148 服务器太忙。

0149 正在重新启动应用程序。重启动应用程序期间无法处理请求。

0150 应用程序目录错误。无法打开应用程序目录。

0151 更改通知错误。无法创建更改通知事件。

0152 安全错误。处理用户安全凭据时发生错误。

0153 线程错误。新线程请求已失败。

0154 HTTP 头写入错误。HTTP 头无法写入客户端浏览器。

0155 页内容写入错误。页内容无法写入客户端浏览器。

0156 头错误。HTTP 头已经写入到客户端浏览器。任何 HTTP 头必须在写入页内容之前修改。

0157 启用缓冲。缓冲启用后不能关闭。

0158 URL 丢失。URL 是必需的。

0159 缓冲已关闭。缓冲必须启用。

0160 日志记录错误。将条目写入日志失败。

0161 数据类型错误。将 Variant 转换为 String 变量失败。

0162 不能修改 Cookie。不能修改 Cookie 'ASPSessionID'。它是一个保留的 Cookie 名。

0163 逗号用法无效。日志条目内不可使用逗号。请选择另一个分隔符。

0164 TimeOut 值无效。指定的 TimeOut 值无效。

0165 SessionID 错误。无法创建 SessionID 字符串。

0166 对象未初始化。试图访问未初始化的对象。

0167 会话初始化错误。初始化 Session 对象时发生错误。

0168 禁止的对象使用。Session 对象中不能保存内部对象。

0169 缺少对象信息。Session 对象中不能保存信息不全的对象。需要对象的线程模型信息。

0170 删除会话错误。无法正确删除 Session。 


 

0171 路径丢失。必须为 MapPath 方法指定 Path 参数。

0172 路径无效。MapPath 方法的路径必须是虚拟路径。使用了一个实际的路径。

0173 路径字符无效。MapPath 方法的 Path 参数中指定了一个无效字符。

0174 多个路径字符无效。MapPath 方法的 Path 参数中指定了无效的 '/' 或 '\\'。

0175 不允许的路径字符。MapPath 方法的 Path 参数中不允许使用 '..' 字符。

0176 未找到路径。MapPath 方法的 Path 参数与已知路径不符。

0177 Server.CreateObject 失败。

0178 Server.CreateObject 访问错误。检查权限时调用 Server.CreateObject 失败。对此对象的访问被拒绝。

0179 应用程序初始化错误。初始化 Application 对象时发生错误。

0180 禁止的对象使用。Application 对象中不能保存内部对象。

0181 线程模型无效。使用单元线程模型的对象不能存储在 Application 对象中。

0182 对象信息丢失。Application 对象中不能保存信息不全的对象。需要此对象的线程模型信息。

0183 空 Cookie 项。不能保存空项 Cookie。

0184 Cookie 名称丢失。必须为 Cookie 指定名称。

0185 默认属性丢失。未找到对象的默认属性。

0186 证书分析错误。

0187 对象添加冲突。无法将对象添加到应用程序。应用程序被另一个要求添加对象的请求锁定。

0188 禁止的对象使用。无法将用对象标记创建的对象添加到会话内部。

0189 禁止的对象使用。无法将用对象标记创建的对象添加到应用程序内部。

0190 意外错误。释放外部对象时发生可捕获错误。

0191 意外错误。外部对象的 OnStartPage 方法中发生可捕获错误。

0192 意外错误。外部对象的 OnEndPage 方法中发生可捕获错误。

0193 OnStartPage 失败。外部对象的 OnStartPage 方法中出错。

0194 OnEndPage 失败。外部对象的 OnEndPage 方法中出错。

0195 无效的服务器方法调用。Session_OnEnd 和 Application_OnEnd 期间不能调用 Server 对象的此方法。


原文:http://www.paedu.net/geyan/itarticles/softguide/201002/43346.html

    支付宝扫码领红包,不用多说,用过的人都知道,双赢的,你得红包,我得到同等推广红包,比如你扫到1元,我也得1元,大家得到的红包可以去实体店消费!新用户至少10元以上哦,每天都有!希望大家每天来本站扫码!感谢感谢!

    把打赏改成扫码红包了!支持本站就扫码下!


下一篇:IIS 运行ASP文件500内部错误解决方法大全


上一篇:诺基亚推准3G应用-S60手机变身网站服务器全攻略!自己测试成功!


小提示:按 回车[Enter]键 返回,按 ←键 返回上一页, 按 →键 进入下一页。

网友评论(0条评论)

选择头像
     

新闻评论(共有 0 条评论)

手机访问

本站APP

联系我

加我微信