很多朋友在用IIS6架网站的时候遇到不少问题,而这些问题有些在过去的IIS5里面就遇到过,有些是新出来的,俺忙活了一下午,做了很多次试验,结合以前的排错经验,做出了这个总结,希望能给大家帮上忙: 问题1:未启用父路径
. {( P/ F$ q% {' G3 K
) I! T1 g6 ^: `% b6 [5 [3 }/ t 症状举例:
( r$ \: J( J2 K0 F7 ]% h( O. Z _( Q% _1 c
Server.MapPath() 错误 ASP 0175 : 80004005
. K+ V) g: F9 E( T
( K. D( e- r0 r: F! [ 不允许的 Path 字符
& g6 P' G( W! H) b- c2 x& g
9 V# {8 @3 ?/ A: T* d. \. N /0709/dqyllhsub/news/OpenDatabase.asp,行 46 S, A- a4 a. l T# w+ ?, X. B
8 O: g& D5 b# z3 }# ?9 `
在 MapPath 的 Path 参数中不允许字符 ...
$ h. k% m5 P2 }% h1 t5 p# S/ w: ~) o/ V! G
原因分析:0 f# N7 u+ E4 g% G: [
" k+ R2 ]) e4 j7 l' M! b9 s& J 许多Web页面里要用到诸如../格式的语句(即回到上一层的页面,也就是父路径),而IIS6.0出于安全考虑,这一选项默认是关闭的.
6 a- Q( f Z& L2 G/ u `4 m) H8 w& m% w/ d' Q$ u4 x, M
解决方法:
! x0 f& F* Z t! A, D+ g- E; L& ]1 ~, t4 [/ m6 Q2 i/ K2 x
在IIS中属性->主目录->配置->选项中.把"启用父路径"前面打上勾.确认刷新.8 U; o7 j8 K2 `! ~8 L, [0 H
4 n- p8 `/ ?& A! y$ D! \8 d. Y
问题2:ASP的Web扩展配置不当(同样适用于ASP.NET、CGI)
$ ?: P7 X! Y" H0 a0 |: ^1 d1 X# E/ {; b) @& S
症状举例:
' O4 _ }+ N, G; R1 U) p8 w- z( Y
HTTP 错误 404 - 文件或目录未找到.
& W- D- \" ^; C D1 X% [5 |) j4 S2 Y/ o1 \
原因分析:, M G9 c! x9 X3 s0 e) }4 Q7 b8 A
4 h1 p) r+ E8 h& J! U, c
在IIS6.0中新增了web程序扩展这一选项,你可以在其中对ASP、ASP.NET、CGI、IDC等程序进行允许或禁止,默认情况下ASP等程序是禁止的.
; i" B" T0 t. F" F9 f
: }+ }' m7 ~; E/ k: f 解决方法:
* X( i* z- [6 O( y! p9 Y
. y5 `7 h! Y3 O# M 在IIS中的Web服务扩展中选中Active Server Pages,点击"允许".
. ~% d7 J. Q3 a2 a
6 u6 E" C5 o( D* v 问题3:身份认证配置不当7 C& @- F+ N4 l
0 B! }' }2 f! |& ?0 ^ 症状举例: j8 J# O3 L- D9 S; l
! w8 {0 k! C% P6 M
HTTP 错误 401.2 - 未经授权:访问由于服务器配置被拒绝.( E: W' e; A8 L* w0 f
5 k. ]$ m/ {2 R: m2 O8 `- `$ G" M/ v 原因分析:IIS 支持以下几种 Web 身份验证方法:. l3 Z" `. m- s; l7 P1 A
" G w- U! `/ [* L' P2 U7 j& ^7 t 匿名身份验证$ m$ I- D8 q* r/ Z# H: m- y
$ r9 C& G+ G2 Q0 c1 Q7 `8 n+ S IIS 创建 IUSR_计算机名称 帐户(其中 计算机名称 是正在运行 IIS 的服务器的名称),用来在匿名用户请求 Web 内容时对他们进行身份验证.此帐户授予用户本地登录权限.你可以将匿名用户访问重置为使用任何有效的 Windows 帐户.1 Z7 d8 {/ i: A2 K* z" `
) O1 p# e0 [- Q; I: B' ^
基本身份验证
2 T4 c% u' A2 N1 F8 X
) I, ]5 M$ B1 ~! v 使用基本身份验证可限制对 NTFS 格式 Web 服务器上的文件的访问.使用基本身份验证,用户必须输入凭据,而且访问是基于用户 ID 的.用户 ID 和密码都以明文形式在网络间进行发送.3 b# ~) R9 Z/ p% ]' F/ t5 l9 z
, o9 O* l3 { b! [: `8 V Windows 集成身份验证* ~+ R! |! g* [: I3 _2 L9 K
" i" V6 n# y3 Q" z9 g& s. d3 |$ b
Windows 集成身份验证比基本身份验证安全,而且在用户具有 Windows 域帐户的内部网环境中能很好地发挥作用.在集成的 Windows 身份验证中,浏览器尝试使用当前用户在域登录过程中使用的凭据,如果尝试失败,就会提示该用户输入用户名和密码.如果你使用集成的 Windows 身份验证,则用户的密码将不传送到服务器.如果该用户作为域用户登录到本地计算机,则他在访问此域中的网络计算机时不必再次进行身份验证.
; q; G" E: \2 }- ?& u6 W8 C) V
. j) n( Y/ Z. C3 ^& j 摘要身份验证8 G' Z- I8 c6 i7 h/ \* x
& Q5 S& U G' A/ Y
摘要身份验证克服了基本身份验证的许多缺点.在使用摘要身份验证时,密码不是以明文形式发送的.另外,你可以通过代理服务器使用摘要身份验证.摘要身份验证使用一种挑战/响应机制(集成 Windows 身份验证使用的机制),其中的密码是以加密形式发送的.! B- D9 v/ M5 s4 v
5 h( h6 B" s$ X0 R
.NET Passport 身份验证4 ^7 q/ i% t4 L/ b' p. g% p6 P
8 W) f2 y1 g( s3 }) o$ t* B; E Microsoft .NET Passport 是一项用户身份验证服务,它允许单一签入安全性,可使用户在访问启用了 .NET Passport 的 Web 站点和服务时更加安全.启用了 .NET Passport 的站点会依靠 .NET Passport 中央服务器来对用户进行身份验证.但是,该中心服务器不会授权或拒绝特定用户访问各个启用了 .NET Passport 的站点.
; O4 c6 Q& X4 H5 c! s0 \# A( R* V% D; E
解决方法:4 _' ?8 v. u V8 S3 r
$ E% @) J: D% f+ x) \5 Z3 Y: N
根据需要配置不同的身份认证(一般为匿名身份认证,这是大多数站点使用的认证方法).认证选项在IIS的属性->安全性->身份验证和访问控制下配置5 D9 f1 V. d; q8 }
4 O! r( Y1 }9 p/ g7 W2 O1 j/ o; D
问题4:IP限制配置不当
/ K" n$ z: W. v$ t/ |( `& b* c" M# E/ K# i
症状举例:+ @4 D3 m4 w( Z* H
/ g$ F D( K: z6 `) u HTTP 错误 403.6 - 禁止访问:客户端的 IP 地址被拒绝.0 z9 Z# D% G$ F9 o' Y- x
! e# }) N2 j* H0 U k7 ]6 `- T 原因分析:4 E1 w) A/ ]3 E7 P
, \: @6 C$ U7 T$ q
IIS提供了IP限制的机制,你可以通过配置来限制某些IP不能访问站点,或者限制仅仅只有某些IP可以访问站点,而如果客户端在被你阻止的IP范围内,或者不在你允许的范围内,则会出现错误提示.( l2 l. S5 O% F
! U, J% a1 d+ s7 [ c. S k. C
解决方法:) w5 ~5 N ?! _% [& b ]
% B- _9 g0 u6 k+ w, o7 L
进入IIS的属性->安全性->IP地址和域名限制.如果要限制某些IP地址的访问,需要选择授权访问,点添加选择不允许的IP地址.反之则可以只允许某些IP地址的访问.3 {. j. ^1 B. M, W; }) b
* K7 j' t. `+ u% p: K; {$ I1 K 问题5:IUSR账号被禁用. f; g4 {% H6 S# p3 D2 g6 O, z& A0 P
& W2 n9 H0 K% S4 F6 W' { 症状举例:
6 D! ]# M( E2 \, T9 m8 S/ I+ Y9 R
HTTP 错误 401.1 - 未经授权:访问由于凭据无效被拒绝.
+ ^) w. a" b2 R+ F% x: m5 a" Q! n- J1 I' F- S* H4 o* I1 r
原因分析:
, `7 [: ?& |/ ]: Y# y
- |! n" C8 h3 D$ B0 A$ Z7 w 由于用户匿名访问使用的账号是IUSR_机器名,因此如果此账号被禁用,将造成用户无法访问.
) z8 x e! n, M( G5 z
# r3 M, r% ~9 L7 f' y G 解决办法:
4 D9 |! W" l/ s, B$ w. n- G, u8 c- D+ n" v5 W O7 K
控制面板->管理工具->计算机管理->本地用户和组,将IUSR_机器名账号启用. K1 I+ c3 Z- _5 @' y4 c
& ]( w4 K0 T( h0 ?1 V 问题6:NTFS权限设置不当
7 w3 J: p4 K: p& L
( E3 r: a1 v+ i4 [3 Z5 B1 E" W 症状举例:
0 M2 z( A! w9 S" y( z1 B
* W% C0 W, k2 k& z$ [. N R HTTP 错误 401.3 - 未经授权:访问由于 ACL 对所请求资源的设置被拒绝.
: I! B' O/ l" ~% [! n' X, M& [
0 q" E/ L) {- m0 @0 r* B 原因分析:
3 q+ P$ [) d6 x' L' n
$ z5 @ M4 X% H. T4 o/ ^ Web客户端的用户隶属于user组,因此,如果该文件的NTFS权限不足(例如没有读权限),则会导致页面无法访问.1 X- L( Y+ y4 }! [8 Y: O
/ h( Y+ X6 u6 v 解决办法:
) a4 Q" l* w- a/ O
+ ?( j8 {8 ?$ i6 s. Y 进入该文件夹的安全选项卡,配置user的权限,至少要给读权限.关于NTFS权限设置这里不再馈述.
! J7 e) E& E( z/ Y. Z# N
3 r* g& V# S9 }0 Z# H* ^ 问题7:IWAM账号不同步% r) _+ d2 E9 p" M, j7 ?# ^+ ~
& I6 b! C& T# D; W ~ 症状举例:4 b% o4 A* z( k& m1 @9 i
5 G0 h8 F+ J0 s3 R: k6 d; h
HTTP 500 - 内部服务器错误
0 V* Y2 h7 v- X* i; ? ^, B8 M- D2 }7 J- M( o" i
原因分析:
8 w h+ k, Q$ W( _# ?% }# v: y- U5 B: E, y
IWAM账号是安装IIS时系统自动建立的一个内置账号.IWAM账号建立后被Active Directory、IIS metabase数据库和COM+应用程序三方共同使用,账号密码被三方分别保存,并由操作系统负责这三方保存的IWAM密码的同步工作.系统对IWAM账号的密码同步工作有时会失效,导致IWAM账号所用密码不统一.9 r9 T1 {* D2 @% u
' ]; u% G \* g# o- @; y 解决办法:
( H0 b' Q/ _- K1 _. ], Y0 @
% `) |- W3 g" @" H: a/ b: Q& { 如果存在AD,选择开始->程序->管理工具->Active Directory用户和计算机.为IWAM账号设置密码.
% W6 q4 F; M5 R! y5 i3 ?9 t
' e1 k b0 h/ R 运行c:\Inetpub\AdminScripts>adsutil SET w3svc/WAMUserPass +密码 同步IIS metabase数据库密码
9 z" }% G) [% r1 o' Z! h; o6 ~! l2 a5 X2 w
运行cscript c:\inetpub\adminscripts\synciwam.vbs -v 同步IWAM账号在COM+应用程序中的密码) C. F/ j$ r4 h5 w' Z; r
" ]# s( B9 d! F! J% o3 j 问题8:MIME设置问题导致某些类型文件无法下载(以ISO为例)
: h' P$ L+ w- v3 ^3 x) g1 u0 h- w- [$ L
症状举例:
; x l' d6 @8 Q* ^' ~5 R3 q0 K+ w1 u4 X4 P! N) e
HTTP 错误 404 - 文件或目录未找到.
% V: G$ v3 e1 ?3 J8 i
" I8 N7 Z9 E' Q2 Z% Y7 T# | 原因分析:, M% X# X8 Z q2 u; y- D: G
* n" e! D7 a: n/ h. |; ]" N4 M
IIS6.0取消了对某些MIME类型的支持,例如ISO,致使客户端下载出错.) F, r7 m7 B& R' {% J
6 O* I% u2 i/ b3 E( f$ s* O
解决方法:) {1 [6 ?$ }. c% {% N
) N9 P7 x+ o/ ?; e3 H* L! Z1 e 在IIS中属性->HTTP头->MIME类型->新建.在随后的对话框中,扩展名填入.ISO,MIME类型是application.; _8 |: l# b. w: k, L
( v" r1 ~2 _- N4 Y$ x$ E, Z
另外,防火墙阻止,ODBC配置错误,Web服务器性能限制,线程限制等因素也是造成IIS服务器无法访问的可能原因,这里就不再一一馈述了.) l! c5 |% M. o2 N8 a
|