很多朋友在用IIS6架网站的时候遇到不少问题,而这些问题有些在过去的IIS5里面就遇到过,有些是新出来的,俺忙活了一下午,做了很多次试验,结合以前的排错经验,做出了这个总结,希望能给大家帮上忙: 问题1:未启用父路径
5 k+ v) |0 Y# r) g8 |) ^: Y/ F9 [
: n8 N0 J7 s" p2 u3 J 症状举例:
; k5 G8 V" M9 Y' Z
- X- e' R6 X2 | Server.MapPath() 错误 ASP 0175 : 80004005! @1 H4 T* D* K4 U; Y! H% ?
1 N& J! w8 A( o9 V 不允许的 Path 字符
: w3 d; |: [6 f" _; L7 }7 e" ~ l: Q9 a* ]) [8 O
/0709/dqyllhsub/news/OpenDatabase.asp,行 4( g5 I1 W9 x4 K2 N* w& H
5 M+ K+ b5 u7 L: B
在 MapPath 的 Path 参数中不允许字符 ...# q& ?# z8 e3 w/ k: Z
! s. o' z+ @4 R# W+ ~
原因分析:: l9 s& H1 s( X9 {; n
: D; Z |' m d$ k7 }. J6 j 许多Web页面里要用到诸如../格式的语句(即回到上一层的页面,也就是父路径),而IIS6.0出于安全考虑,这一选项默认是关闭的.
8 n0 { a: N# Z" D; V: E/ {1 H
% o, x! y2 `! l 解决方法:
( W6 ^/ C' u Q1 [0 \4 t2 S4 o- {8 n# o Q9 ~( J
在IIS中属性->主目录->配置->选项中.把"启用父路径"前面打上勾.确认刷新.# i- t+ |; C% [* Y9 m/ \$ `
5 O# M1 m- O/ [& X& e6 h: Z 问题2:ASP的Web扩展配置不当(同样适用于ASP.NET、CGI): z" l9 u/ P/ L' x8 W% V
% m. i& e y) E" [$ m+ ?
症状举例:
# u& _7 J- a2 D" p+ c3 s" Z, Y7 a
HTTP 错误 404 - 文件或目录未找到.
0 y" d7 s% S/ Q5 y! G- [4 p3 J; C$ G* k6 n
原因分析:6 R, s% q7 P3 b% ~4 ?. m) H7 E) q/ C
9 k& \) l6 {! ~7 L
在IIS6.0中新增了web程序扩展这一选项,你可以在其中对ASP、ASP.NET、CGI、IDC等程序进行允许或禁止,默认情况下ASP等程序是禁止的.
4 A6 \ }7 T H- [8 r' Z9 K; Z: l4 Y/ ?! @( _2 k. S5 ]0 W* ]
解决方法:) n# ]0 X/ E7 G; b) g5 C! V
1 a( X7 y) r( q( b* R2 m
在IIS中的Web服务扩展中选中Active Server Pages,点击"允许".- q2 Q* F' e( B% `
* u4 m, B7 b& }; w* M# U d
问题3:身份认证配置不当$ Y2 h7 g1 X: O$ H+ z
1 @0 w; B6 j/ A! D 症状举例:
' Q! A% R2 c8 C" x3 X* A8 n& R4 H
2 G4 W5 H. X8 Y2 \- ~ HTTP 错误 401.2 - 未经授权:访问由于服务器配置被拒绝.
; d; U [/ ~& B3 [7 |+ r7 i. |" y; O. L4 s- D; Y% E2 Q% x
原因分析:IIS 支持以下几种 Web 身份验证方法:! l' c# Q) k. ^6 | t, ?
! w/ E' [: f1 o, g, x6 o 匿名身份验证
# u2 \7 b7 I4 A* C6 ]+ J6 b2 h/ O. ]
/ p1 b* I. {7 X4 t' M4 h& F* D IIS 创建 IUSR_计算机名称 帐户(其中 计算机名称 是正在运行 IIS 的服务器的名称),用来在匿名用户请求 Web 内容时对他们进行身份验证.此帐户授予用户本地登录权限.你可以将匿名用户访问重置为使用任何有效的 Windows 帐户.% F6 v b: H$ [5 e( e( _: T" H
4 y/ P+ f1 C* e- @/ X' q8 U* f
基本身份验证# I" }2 P' |+ k1 R3 n
' U4 _% Q7 L: O/ { 使用基本身份验证可限制对 NTFS 格式 Web 服务器上的文件的访问.使用基本身份验证,用户必须输入凭据,而且访问是基于用户 ID 的.用户 ID 和密码都以明文形式在网络间进行发送.3 m6 F# k% N2 j) S; m
8 `: _) g4 v" |9 \ Windows 集成身份验证
/ E0 N) A5 M* O
7 _( D2 e5 I, g8 I; q. S$ _) ^ Windows 集成身份验证比基本身份验证安全,而且在用户具有 Windows 域帐户的内部网环境中能很好地发挥作用.在集成的 Windows 身份验证中,浏览器尝试使用当前用户在域登录过程中使用的凭据,如果尝试失败,就会提示该用户输入用户名和密码.如果你使用集成的 Windows 身份验证,则用户的密码将不传送到服务器.如果该用户作为域用户登录到本地计算机,则他在访问此域中的网络计算机时不必再次进行身份验证.
; {8 m3 b8 ~( ?3 h( Y
9 I8 I- t5 ~4 }7 k# ?: K" ^9 z 摘要身份验证/ d3 d4 W4 L9 v p1 o
4 Y9 p$ b7 Z: R6 i* `+ \ 摘要身份验证克服了基本身份验证的许多缺点.在使用摘要身份验证时,密码不是以明文形式发送的.另外,你可以通过代理服务器使用摘要身份验证.摘要身份验证使用一种挑战/响应机制(集成 Windows 身份验证使用的机制),其中的密码是以加密形式发送的.! \$ @8 n$ j7 X/ y6 @! @9 Y6 t
# N& K* D5 ~. Q5 i* {0 L8 x( B .NET Passport 身份验证
# K$ ? ?0 r8 M; S; Z. B$ e' b) ^3 {, Y2 F7 H
Microsoft .NET Passport 是一项用户身份验证服务,它允许单一签入安全性,可使用户在访问启用了 .NET Passport 的 Web 站点和服务时更加安全.启用了 .NET Passport 的站点会依靠 .NET Passport 中央服务器来对用户进行身份验证.但是,该中心服务器不会授权或拒绝特定用户访问各个启用了 .NET Passport 的站点.
% z, O7 ~$ W) r Q7 U3 j( V0 ?. ]5 H
! F+ d9 V- c# D& \! s! k1 @' M. P 解决方法:
8 x$ u3 o$ Z7 d8 r* }8 W' M# U
+ a9 \+ B0 y2 I# E# I T 根据需要配置不同的身份认证(一般为匿名身份认证,这是大多数站点使用的认证方法).认证选项在IIS的属性->安全性->身份验证和访问控制下配置9 D5 { ?1 d# _+ F7 T1 Y5 V4 I
0 z) j# n4 U& q; G+ [ 问题4:IP限制配置不当( ~1 D$ r( {( L. o9 F8 P/ P8 Z" W/ S7 Y
0 j# P c, G; { 症状举例:
4 j$ J. t& w$ _4 I. W+ V7 _+ e+ }; z7 w
HTTP 错误 403.6 - 禁止访问:客户端的 IP 地址被拒绝.
; }$ Y) W. B9 ~1 b$ w
& {+ ?8 `9 S [& f. V 原因分析:
( ^6 A( c' { E. D0 ~
7 P1 z! R! e3 n/ u IIS提供了IP限制的机制,你可以通过配置来限制某些IP不能访问站点,或者限制仅仅只有某些IP可以访问站点,而如果客户端在被你阻止的IP范围内,或者不在你允许的范围内,则会出现错误提示.9 y3 U4 j4 x* ~
, S5 G# a7 w( h+ r; W: S
解决方法:* O" c6 ~4 i6 h3 H
, K# A# J# R7 o- w% l 进入IIS的属性->安全性->IP地址和域名限制.如果要限制某些IP地址的访问,需要选择授权访问,点添加选择不允许的IP地址.反之则可以只允许某些IP地址的访问.
; }% \) y' _" U3 w3 K6 ~+ z
6 x% {6 s1 n7 }8 [ 问题5:IUSR账号被禁用
2 F" f4 v; J, }3 w) O. _. b1 S3 Q. l* m% j+ Z$ E
症状举例:
- Q! ^6 t+ C4 p1 Q# x. h. q* i
* \2 e1 y1 E! x; `+ [ HTTP 错误 401.1 - 未经授权:访问由于凭据无效被拒绝.
* O2 o$ X& i, [( w, w
' i+ o* o3 y# K L7 m& w 原因分析:
+ U: J% u+ G( J% u0 O
' B. [; r, g) t+ y; Y* V 由于用户匿名访问使用的账号是IUSR_机器名,因此如果此账号被禁用,将造成用户无法访问.2 I* Q) ^* ?7 B5 {4 r
% D {6 p* V% H 解决办法:
% {# G' c# g6 n' P g# ]& Y
% `0 ^* \2 N w& Z 控制面板->管理工具->计算机管理->本地用户和组,将IUSR_机器名账号启用.( @) g8 b3 S4 f j+ O5 [
" R b+ j/ s! ?6 ? 问题6:NTFS权限设置不当2 o! I6 y, ~- g. k
0 F: e$ B2 J6 U; b: u3 r& c 症状举例:8 h: k& b( K; O" |8 L; i5 Y( B( v
' P; X5 ^7 \9 q( t; \$ y
HTTP 错误 401.3 - 未经授权:访问由于 ACL 对所请求资源的设置被拒绝.
6 u8 g: v: o; Z5 p- \# M# f0 k! n, A1 M8 ~( W7 o9 v5 {3 K' L! X' Z% p9 O
原因分析:
" r( f- l) Y! k# v8 h. A
% T. q' F) x! c Web客户端的用户隶属于user组,因此,如果该文件的NTFS权限不足(例如没有读权限),则会导致页面无法访问.
6 j0 X! M8 `- x, g8 k
* x$ i1 B {8 X9 b) B4 |. z 解决办法:
% U7 y R; U9 q4 c) B
. M2 \; C- p/ `. L( o) @ 进入该文件夹的安全选项卡,配置user的权限,至少要给读权限.关于NTFS权限设置这里不再馈述.
6 q- a$ _, \4 I7 A# _$ v; `8 t) N( v! A9 }
问题7:IWAM账号不同步) r0 g! T; @& z( `4 q
! |8 j. r: a7 S2 z1 h6 Z 症状举例:
3 K$ c9 B" M" |9 ]( F! a4 p
% h6 E3 P$ [: w6 J HTTP 500 - 内部服务器错误
0 w$ b9 x$ ?1 [. @& A- R0 A
6 J c k' k; Z0 o0 ]6 u. L8 ]5 ]2 b 原因分析:' V' R, M! ?! k4 P1 V
9 u; n' q+ Y: Q* x
IWAM账号是安装IIS时系统自动建立的一个内置账号.IWAM账号建立后被Active Directory、IIS metabase数据库和COM+应用程序三方共同使用,账号密码被三方分别保存,并由操作系统负责这三方保存的IWAM密码的同步工作.系统对IWAM账号的密码同步工作有时会失效,导致IWAM账号所用密码不统一.
9 Z2 ~8 ?) V4 o) P& M# s/ d
0 O2 h. q5 h( f f 解决办法:
# w% C0 n4 u' O' a. `6 [6 k4 a' w+ U( r9 a6 _* f! o% g
如果存在AD,选择开始->程序->管理工具->Active Directory用户和计算机.为IWAM账号设置密码.* {5 J0 z4 @: j# w, P. P* H
; j- N7 k8 s. ]! u2 `9 d1 i
运行c:\Inetpub\AdminScripts>adsutil SET w3svc/WAMUserPass +密码 同步IIS metabase数据库密码
2 w6 ^$ q- S$ k$ X/ X7 Y9 N7 g9 i1 Q* d, t5 r1 S8 C% Z
运行cscript c:\inetpub\adminscripts\synciwam.vbs -v 同步IWAM账号在COM+应用程序中的密码
8 s Q! o/ @9 `1 K
t4 e9 l1 P1 e# M1 l& ]1 W9 ~. F 问题8:MIME设置问题导致某些类型文件无法下载(以ISO为例)% }7 M2 U$ t. f Z
3 Q0 J! j$ |% u* r- g/ M, d
症状举例:
$ Q# g9 s! Y3 O8 v
0 `* I, Q# q: W HTTP 错误 404 - 文件或目录未找到.
/ R! d7 b6 n7 O3 q* f5 y% W9 [) P3 g+ j
原因分析:
% d/ \4 a9 i8 {2 v7 g
% ^% D: v, G1 v) j' p1 h IIS6.0取消了对某些MIME类型的支持,例如ISO,致使客户端下载出错.# k$ [# c% ~1 A3 g+ L: O: w
7 Z* n O, @% }; f" F
解决方法:
9 g6 A9 u! f# p# G& o- h; `9 z' n1 A( Q# j6 G/ y
在IIS中属性->HTTP头->MIME类型->新建.在随后的对话框中,扩展名填入.ISO,MIME类型是application.
3 ^" {; J0 i4 H) S/ o" D7 ]3 Z4 W/ P, H! U4 V; |
另外,防火墙阻止,ODBC配置错误,Web服务器性能限制,线程限制等因素也是造成IIS服务器无法访问的可能原因,这里就不再一一馈述了.0 e3 b( v8 L3 p& k' s: x' T
|