|
|
很多朋友在用IIS6架网站的时候遇到不少问题,而这些问题有些在过去的IIS5里面就遇到过,有些是新出来的,做了很多次试验,结合以前的排错经验,做出了这个总结,希望能给大家帮上忙。
& U8 I# o1 H7 J+ { Y& w o0 K$ d! q: E! {% u; _; `+ y* ]$ T
问题1:未启用父路径
2 g; {5 }1 K4 [症状举例: ! ?$ G* V1 b3 E1 `' t( g
3 T/ s- V& f, s+ ], }) v Server.MapPath() 错误 \'ASP 0175 : 80004005\'
. _8 S4 ^5 }2 b$ L# }
) B; c- }) ?' r/ P0 t+ B 不允许的 Path 字符
8 O: m( F7 Z: [+ o% {
; S6 k1 _7 C* J0 t, I; M /0709/dqyllhsub/news/OpenDatabase.asp,行 4% b7 f9 O9 B" l9 ?! f3 A& A7 S' M
$ e1 c7 k2 C5 Z; T1 o 在 MapPath 的 Path 参数中不允许字符 \'..\'。
5 f. F5 g9 o' E4 E2 f/ Q7 u8 @0 L7 q% U3 o( V1 t
8 t. v9 L2 ~7 a* r9 k原因分析:& L G0 [$ i7 H, ?" K' z
# S5 }1 d3 C7 J* \, t. I 许多Web页面里要用到诸如../格式的语句(即回到上一层的页面,也就是父路径),而IIS6.0出于安全考虑,这一选项默认是关闭的。 如果是使用LEADBBS论坛的朋友就要注意了,DV的不会出现问题。
: M& T' Z# ?/ G( [# t. {. z% v2 w$ `: j2 s1 D, ^
解决方法:
1 A8 i0 |' D* C5 b9 T$ Y; ^% c/ e, L8 G
在IIS中属性->主目录->配置->选项中。把”启用父路径“前面打上勾。确认刷新。, a, Y$ {1 I: V. W+ T% w c
; u0 f9 v- t& ?) @# I' ~问题2:ASP的Web扩展配置不当(同样适用于ASP.NET、CGI)# K e2 ]% X, i0 B% ^3 F( F
' u/ g2 t7 p) t: y2 f- h
症状举例:
' E. s7 k. W+ \1 ?( j
2 H& y3 }% L7 n4 sHTTP 错误 404 - 文件或目录未找到。' a) T5 l, D/ a# {
" A! _7 B5 E( P
原因分析:
* a4 {& R, V" b0 m2 O! x S/ F. s1 i
- ]* u# c; R! O# i
/ k" \' V r) m6 X* y( n 在IIS6.0中新增了web程序扩展这一选项,你可以在其中对ASP、ASP.NET、CGI、IDC 等程序进行允许或禁止,默认情况下ASP等程序是禁止的。
# o; j; J; x4 [3 U" E. z& v8 K; c# g
解决方法:
* s' A& `- e& j) l9 o" ~' ^% p8 e" [( B$ @
在IIS中的Web服务扩展中选中Active Server Pages,点击“允许”。
. M% Q3 W- K" u; y) t1 n. u# W4 Y' I1 n# T9 } v
问题3:身份认证配置不当
( [( z! _; ?7 N, U K& S% Y. u+ W3 |9 }4 ?1 p/ e; L
症状举例:: i" P/ s9 B: J# V+ u
& v3 K0 t2 M+ ~) x9 E: a6 }$ n, v HTTP 错误 401.2 - 未经授权:访问由于服务器配置被拒绝。
3 F! S' z' w4 S
6 _2 W0 r1 a* U( t5 M- I原因分析:
* V$ Z' O& U) o1 N$ e* s" @
! ]+ x4 [. q8 | q# C1 C4 e IIS 支持以下几种 Web 身份验证方法:
/ ]- e# Y+ N6 C* f0 f6 u4 x- P0 `& X5 q/ ^; J% E, }) s
(1)匿名身份验证. t* u& |' C I! t. j |- j
9 T+ B+ d3 T/ q5 K* J
IIS 创建 IUSR_计算机名称帐户(其中计算机名称是正在运行 IIS 的服务器的名称),用来在匿名用户请求 Web 内容时对他们进行身份验证。此帐户授予用户本地登录权限。你可以将匿名用户访问重置为使用任何有效的 Windows 帐户。
7 U7 s, v. J! B# h% v6 x' P* ]% i, _9 j. K1 w% }# K: S$ H
(2)基本身份验证, \6 b5 ^+ n3 ~( u$ a+ I2 D
. {' Q+ ^, U- Z 使用基本身份验证可限制对 NTFS 格式 Web 服务器上的文件的访问。使用基本身份验证,用户必须输入凭据,而且访问是基于用户 ID 的。用户 ID 和密码都以明文形式在网络间进行发送。 V" i9 q( v3 m% \
) ]/ T7 O- e$ n4 V% C; R* I(3)Windows 集成身份验证
F. {& e& g6 ~8 t2 a+ \1 N% A4 H! ~: \) P$ ` r& S
Windows集成身份验证比基本身份验证安全,而且在用户具有Windows域帐户的内部网环境中能很好地发挥作用。在集成的Windows 身份验证中,浏览器尝试使用当前用户在域登录过程中使用的凭据,如果尝试失败,就会提示该用户输入用户名和密码。如果你使用集成的Windows身份验证,则用户的密码将不传送到服务器。如果该用户作为域用户登录到本地计算机,则他在访问此域中的网络计算机时不必再次进行身份验证。. m5 }- q# R% ]5 p
Q2 K$ ]$ ]5 A; [& Y(4)摘要身份验证$ u+ Z( f3 I4 l
8 G9 y z0 M2 I/ O. z: F. s# m' e 摘要身份验证克服了基本身份验证的许多缺点。在使用摘要身份验证时,密码不是以明文形式发送的。另外,你可以通过代理服务器使用摘要身份验证。摘要身份验证使用一种挑战/响应机制(集成 Windows 身份验证使用的机制),其中的密码是以加密形式发送的。% {( c$ k' e/ X+ x# l5 c
- V1 X' v& r+ a# H6 w.NET Passport 身份验证
; ~6 ]3 C8 v/ F s# L' K3 R7 r" B: T
+ @6 ^' S- @( Y7 C1 l7 z9 Y1 `- w% n" @, bMicrosoft .NET Passport 是一项用户身份验证服务,它允许单一签入安全性,可使用户在访问启用了 .NET Passport 的 Web 站点和服务时更加安全。启用了 .NET Passport 的站点会依靠 .NET Passport 中央服务器来对用户进行身份验证。但是,该中心服务器不会授权或拒绝特定用户访问各个启用了 .NET Passport 的站点。
9 ?) G% [6 B6 {( m e8 t1 m7 o* ]$ J, t5 ~2 w' t; K
解决方法:/ T$ T8 x- H# C9 W" o) J, k. O
; f0 T, I: J7 k! s! E8 N: d/ R
根据需要配置不同的身份认证(一般为匿名身份认证,这是大多数站点使用的认证方法)。认证选项在IIS的属性->安全性->身份验证和访问控制下配置。
6 S) d0 o; Q! ]( G* s% @9 C& o
5 l; ~2 @" K h' R& B1 |" w8 i8 W
问题4:IP限制配置不当
3 T& \8 C2 v/ V$ h8 C: z9 v
5 K) Z1 w. k' C! `4 z症状举例:- [! p8 }9 s% x
: n1 M6 o0 P3 y, l- y% }9 [; h# t& D# }4 X% G3 m" {
HTTP 错误 403.6 - 禁止访问:客户端的 IP 地址被拒绝。2 j5 ^8 K' w& A* |: D) R4 ]
7 n2 u$ `7 i+ J原因分析:
! i- |! v% n& V8 C5 I6 C
4 i, Y$ L0 v5 |5 y; O$ \
) T7 ?* p7 \- a. p IIS提供了IP限制的机制,你可以通过配置来限制某些IP不能访问站点,或者限制仅仅只有某些IP可以访问站点,而如果客户端在被你阻止的IP范围内,或者不在你允许的范围内,则会出现错误提示。5 h6 q. Z1 q4 y/ h" s
. F1 x( F2 G: h, V1 `0 G9 g
解决方法:
. s+ @- _( P. {- ]: q8 s" J4 \# m- h
3 U0 _, A T B! u进入IIS的属性->安全性->IP地址和域名限制。如果要限制某些IP地址的访问,需要选择授权访问,点添加选择不允许的IP地址。反之则可以只允许某些IP地址的访问。
; H) K; ~# P$ v$ S) }" X0 U3 f4 g- v1 C
问题5:IUSR账号被禁用
, r0 J0 l) ^9 H- Y) ^% k! C3 |2 ~7 ^3 d; Z& E7 O
症状举例:
# M- [% p L$ X6 ?3 J/ k- o$ P1 f9 J$ |+ H1 l
* I+ c! F1 Z! u* w( G+ G
HTTP 错误 401.1 - 未经授权:访问由于凭据无效被拒绝。! a# B, |+ X' `- q' g8 q$ m- N% }+ @
' @; }8 V# m9 n2 f# q# c
原因分析:* n! y+ M2 a+ t- \, U
+ ~3 h( ~% ^5 N+ o
# D2 s# Z1 M. E5 p6 y( b0 o 由于用户匿名访问使用的账号是IUSR_机器名,因此如果此账号被禁用,将造成用户无法访问。6 [; i" r L3 o9 f
9 { l' o) R" O4 N* Y6 j解决办法:
1 f B2 v, f9 n/ D; Z6 e
& c9 \+ N, V V' k: d4 l控制面板->管理工具->计算机管理->本地用户和组,将IUSR_机器名账号启用。
* J3 T2 v- e# ?
8 V/ H6 e) N& x+ ^) A U% \问题6:NTFS权限设置不当
0 Q5 K; n0 x+ V+ c4 E症状举例:& s |9 A2 d' R; ^" f4 ?0 f, z
( P1 o4 U* [: k; g6 s( c& p8 S' Q+ H2 R# W
HTTP 错误 401.3 - 未经授权:访问由于 ACL 对所请求资源的设置被拒绝。
+ B9 d5 o: Z/ v
, R8 d: j" L& V0 F- K y+ f9 A原因分析:
0 b) c+ R( b9 m- p+ d
& E. r; v; D" A- X6 y7 ]0 g: |0 Q7 B2 d' s, o( Z9 F
Web客户端的用户隶属于user组,因此,如果该文件的NTFS权限不足(例如没有读权限),则会导致页面无法访问。3 b/ T5 z/ v6 ~( K2 H
1 [# |# G- }8 |( ]解决办法:3 d& D7 V* v4 G$ t' `
1 d9 @% q% }( N) Q
9 H0 d+ u7 _+ F& X/ ?' m e 进入该文件夹的安全选项卡,配置user的权限,至少要给读权限。关于NTFS权限设 置这里不再馈述。
0 d3 s- g8 E* }9 D
5 A; U) N1 V( b# _" p: e( w问题7:IWAM账号不同步
( E3 Z1 L& ?* X4 w
' O1 C i1 V$ ~. F注意:这个问题经常出现!!!!- ^& o# ]; U) C7 q
症状举例:% k/ n: p& k0 l" ~4 c0 u
+ J) R( D: w9 u0 }; x! E% C5 D
* \. f8 y5 M1 N
HTTP 500 - 内部服务器错误
+ J9 A7 E1 @! e5 J2 ?4 f- {+ ~+ d# S- L0 I# Q2 t3 a
原因分析:
" a( ^4 \8 W* D- i: g+ Q1 o
" ~9 C s# V6 C/ P* x w; V9 l- \) A& d
IWAM账号是安装IIS时系统自动建立的一个内置账号。IWAM账号建立后被Active Directory、IIS metabase数据库和COM+应用程序三方共同使用,账号密码被三方分别保存,并由操作系统负责这三方保存的IWAM密码的同步工作。系统对IWAM账号的密码同步工作有时会失效,导致IWAM账号所用密码不统一。 |1 t) ^7 u/ a) e: T2 b1 w8 l. q5 ]
% N. m- M# e" c5 q解决办法: o' ~* S- K+ U7 B
: @7 A4 _2 W R- A6 q
: F& l! |# g# p7 A 如果存在AD,选择开始->程序->管理工具->Active Directory用户和计算机。为IWAM账号设置密码。运行c:\Inetpub\AdminScripts>adsutil SET w3svc/WAMUserPass +密码同步IIS metabase数据库密码运行cscript c:\inetpub\adminscripts\synciwam.vbs -v 同步IWAM账号在COM+应用程序中的密码1 f; S4 x8 b8 u3 g0 P4 K5 L+ [7 F. Z/ }
! v9 ?4 p$ _4 [7 U: X9 O问题8:MIME设置问题导致某些类型文件无法下载(以ISO为例). i- a6 B, w% ]
3 j0 V0 ~2 _2 w( n$ _
症状举例:/ W; s4 \6 f* R T! t
( B& A% I: P% {* v8 \0 @5 w& P5 q
HTTP 错误 404 - 文件或目录未找到。
; ~4 ~0 d. d1 ?7 m; c; g+ N. ^8 _% \; ]% r7 C0 ?' [
原因分析:
8 F6 ?1 E& |7 a9 b1 L" e5 o% [4 [
# Y3 f! ~8 q: H4 }- l% v7 l$ { IIS6.0取消了对某些MIME类型的支持,例如ISO,致使客户端下载出错。
/ c& @9 X% {% Q# B# l* p. \. D
6 h& H3 b2 ~2 g* d( I1 Z解决方法:5 c, `4 t/ s, Z/ p: Y1 f9 L5 }
/ a% y9 ]% [( `( f6 @: k
在IIS中属性->HTTP头->MIME类型->新建。在随后的对话框中,扩展名填入.ISO,MIME类型是application。
8 @2 t9 _! ~+ y) k1 N7 Q7 w' ?3 k% L' k$ C9 y* ?* b5 J
另外,防火墙阻止,ODBC配置错误,Web服务器性能限制,线程限制等因素也是造成IIS服务器无法访问的可能原因,这里就不再一一馈述了。0 O4 o7 d/ I! H; v5 N
|
|