很多朋友在用IIS6架网站的时候遇到不少问题, 以下是在所知的2003iis碰见的一些问题,只要对着症状处理。服务器一定可以使用的。
问题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:无法在网站后台上传超过200k的文件。
原因:
在 IIS 6.0 中,默认设置是特别严格和安全的,这样可以最大限度地减少因以前太宽松的超时和限制而造成的***。
配置数据库属性实施的最大 ASP 张贴大小为 204,800 个字节,并将各个字段限制为 100 KB。在 IIS 6.0 之前的版本中,没有张贴限制。
这就造成了文件上传不能超过200k,而事实上是提交数据不能超过200k,你可以发一个很长的帖子试试,也会出现这个错误
解决办法:
然后在服务里关闭iis admin service服务
找到windows\system32\inesrv\下的metabase.xml,
打开,找到ASPMaxRequestEntityAllowed 把他修改为需要的值,默认为204800,即200K
然后重启iis admin service服务
把它修改为51200000(50M)
其他问题:
动态或静态内容错误
禁止应用程序对资源进行访问
在 全新安装之后,iis 6.0 以工作进程隔离模式运行。默认情况下,以此模式运行的应用程序使用网络服务标识。"网络服务"是具有极少用户权限的帐户,因此可通过限制对 web 服务器上资源的访问来提供更高的安全性。如果在服务器处于工作进程隔离模式时将应用程序迁移到 iis 6.0,并且应用程序先前作为本地系统在进程内运行(在 inetinfo.exe 中),则应用程序可能由于网络服务标识设定的限制无法访问资源。本地系统帐户拥有操作系统上几乎所有资源的访问权限,因此,可能会产生严重的安全隐患。尽 可能不要使用本地系统帐户。如果必须使用本地系统帐户来运行某个应用程序,则在其自己的虚拟目录中的新应用程序池中运行该应用程序,以便通过隔离该应用程 序来减少***面。或者,如果应用程序需要使用可信计算库 (tcb) 的权限,则以可配置的身份运行该应用程序,并给该可配置的身份指派 tcb 权限。但是,这种方法仍存在安全隐患,因为可通过 tcb 权限执行很多操作。
详细信息,请参阅配置工作进程标识和 iis 和内置帐户。
动态内容请求返回 404 错误
为 了更好地预防恶意用户和***者的***,iis 是在高度安全和锁定模式下安装的。在默认情况下,iis 仅处理静态内容,这意味着除非启用 asp、asp.net、在服务器端的包含文件、webdav 发布、frontpage® server extensions 和通用网关接口等功能,否则无法使用这些功能。如果在安装 iis 后没有启用此功能,则在拒绝此类服务时,iis 默认返回常规 404 自定义错误页以防止泄漏配置信息。默认情况下,iis 还将 404 错误及子状态代码 2 (404.2) 写入到 w3c 扩展日志文件中。
要 点 您必须是本地计算机上 administrators 组的成员或者您必须被委派相应的权限才能执行下列步骤。作为安全性的最佳操作,请使用不属于 administrators 组的帐户登录计算机,然后使用运行方式命令以管理员身份运行 iis 管理器。在命令提示符下,键入 runas /user:administrative_accountname "mmc %systemroot%\system32\inetsrv\iis.msc"。
启用或禁用 web 服务扩展
在 iis 管理器中,展开本地计算机,然后单击"web 服务扩展"。
在详细信息窗格中,单击要启用或禁用的 web 服务扩展。
要启用已禁用的 web 服务扩展,请单击"允许"。
要禁用已启用的 web 服务扩展,请单击"禁止"。
单击"确定"。
要以编程方式启用或禁用 web 服务扩展,请参阅 websvcextrestrictionlist。
静态文件请求返回 404 错误
对 于静态内容请求,此版本的 iis 仅处理具有已知文件扩展名的文件请求,此功能称为"已知扩展名"。如果所请求资源的文件扩展名没有映射到 mimemap 属性中的已知扩展名,则 iis 就会拒绝该请求,并默认在 w3c 扩展日志文件中记录 404 错误和子状态代码 3 (404.3)。要防止泄漏配置信息,可以将 iis 配置为在拒绝此类服务时默认返回常规 404 自定义错误页。您可以使用 iis 管理器添加或编辑多用途 internet 邮件交换 (mime) 映射。要关闭"已知扩展名"功能并允许 iis 处理具有任何扩展名的文件,可以将 *,application/octet-stream 值添加到 mime 映射列表中。如果更新全局 mime 映射,则在工作进程回收或重新启动万维网发布服务(www 服务)后,更改才会生效。如果更新单个网站 mime 映射,则更改会立即生效。
有关添加或编辑 mime 映射的详细信息,请参阅使用 mime 类型。
工作进程回收丢失应用程序会话状态
默认情况下,工作进程在 120 分钟后回收。如果在回收工作进程时 asp 应用程序并不存储会话状态,则该 asp 应用程序中的会话状态可能会丢失。要解决此问题,可以将会话状态存储在数据库中,或者禁用工作进程回收。
禁用工作进程回收
在 iis 管理器中,展开本地计算机,展开"应用程序池",右键单击该应用程序池,然后单击"属性"。
在"回收"选项卡上,清除"回收工作进程(分钟)"复选框。
单击"确定"。
在服务器端的包含文件指令 (#i nclude) 返回 404 错误(对于 .stm 文件)或 0131 错误(对于 .asp 文件)
如 果 asp 页使用 #i nclude 在服务器端的包含文件指令和 ".." 记号来引用某个父目录,则除非重新配置了 aspenableparentpaths 配置数据库属性,否则,该指令将返回一条错误。默认情况下,将该属性设置为 false。如果将该属性设置为 true,则可能会产生潜在的安全隐患,因为包含文件路径可以访问应用程序根目录外的关键或机密文件。
通过 iis 管理器启用父路径
在 iis 管理器中,展开本地计算机,右键单击要配置的应用程序的开始位置目录,然后单击"属性"。
单击"目录"选项卡,然后单击"配置"。
单击"选项"选项卡。
在"应用程序配置"部分,选择"启用父路径"复选框。
单击"确定"。
asp 在事件日志中给 global.asa 生成"权限被拒绝"错误
由 于早期版本的 asp 在事件中没有用户上下文,因此只能在宿主进程的安全上下文(或用户标识)中执行事件。这将会导致一些问题,例如在将文件写入 session_onend 事件中时发生拒绝访问错误。在当前版本中,asp 默认匿名运行 global.asa 事件、application_onend 和 session_onend(默认值为 true)。
要以编程方式更改此设置,请参阅 http://www.microsoft.com/technet/prodtechnol/windowsserver2003/zh-chs/library/iis/55aa5aaf-813a-40f0-9679-0032001f8305.mspx?mfr=true。
cgi 进程不启动
如 果 cgi 进程没有运行,则确保已启用了 cgi web 服务扩展。请参阅本主题中的动态内容请求返回 404 错误。另外,除非给运行 cgi 进程使用的帐户指派了某些用户权限,否则,cgi 不会启用。您可以将该帐户添加为 iis_wpg 组的成员,并为它分配以下两种用户权限:
调整进程的内存配额
替换进程级令牌
为本地计算机上的帐户分配用户权限
从"开始"菜单中,指向"管理工具",然后单击"本地安全策略"。
展开"安全设置",双击"本地策略",然后双击"用户权限分配"。
在详细信息窗格中,双击要更改的策略。
单击"添加用户或组"。
在"输入对象名称来选择"框中,输入用户或组的名称。
单击"确定"。
将 asp.net 页作为静态文件返回
如 果安装了 iis 6.0 而没有安装 asp.net,则将 asp.net 文件作为静态文件返回。如果重新安装了 iis 6.0 而没有重新注册 asp.net,则也可能会出现该错误。要了解如何纠正此问题,请参阅 asp.net iis 注册工具和使用 i 选项。
windows nt server 的协作数据对象失败
microsoft® windows nt® server 的协作数据对象 (cdonts) 已从 microsoft windows® server 2003 家族中删除。如果 web 应用程序使用 cdonts,则可以将它们转换为 microsoft 协作数据对象 (cdo)。cdonts 中的大多数方法在 cdo 中都有相匹配的方法,但是名称可能不同。
有关平台软件开发工具包 (psdk) 中 cdo 的参考资料,请参阅 msdn online 上的 overview of cdo。
连接错误
客户端请求收到 503 错误
检 查错误事件日志以确定 503 错误是在 http.sys 中还是在万维网发布服务(www 服务)中检测到的。如果该错误是在 http.sys 中检测到的,则可能是由于队列中的请求太多,而导致 http.sys 超过其应用程序池队列长度限制。要解决此问题,请增加应用程序池队列长度限制。
更改应用程序池队列长度限制
在 iis 管理器中,展开本地计算机,展开"应用程序池"文件夹,右键单击应用程序,然后单击"属性"。
单击"性能"选项卡。
在"请求队列限制"部分中,选中"核心请求队列限制为"复选框,然后键入队列请求的最大数量。
单击"确定"。
如 果在 www 服务中检测到 503 错误,则问题可能是 iis 已启动了快速失败保护,因为在给定一段时间内为应用程序池分配的许多工作进程都处于不正常的运行状态。要解决此问题,请增加启动快速失败保护前出现的故障 数量或时间。您应该测试应用程序是否存在内存泄漏或者其他使工作进程处于不正常状态的问题。
配置快速失败保护
在 iis 管理器中,展开本地计算机,展开"应用程序池",右键单击该应用程序池,然后单击"属性"。
单击"运行状况"选项卡。
在"失败数"框中,键入在禁用工作进程之前要检测的工作进程失败数量。
在"时间段"框中,键入累积失败总数的时间长短(分钟)。
单击"确定"。
进行子验证登录的匿名帐户 (iusr_computername) 收到 401 错误
默认情况下,在 iis 6.0 中不启用子验证组件 iissuba.dll。在早期版本中,iissuba.dll 允许 iis 管理匿名帐户的密码,这会产生潜在的安全隐患。在 iis 6.0 中,您可以使用子验证管理匿名帐户的密码,但必须满足以下条件:
对于授权匿名访问的应用程序,工作进程以本地系统身份运行。
注册了子验证组件 iissuba.dll。
启用了 anonymouspasswordsynch 配置数据库属性(设置为 true)。
对于 iis 6.0 全新安装和从配置了子验证的 iis 安装升级到 iis 6.0,为满足以上要求所采取的操作是不同的。
有关配置子验证的步骤的信息,请参阅匿名身份验证。
客户端不能连接到服务器
windows server 2003 家族提供基于软件的防火墙,以防止从远程计算机对服务器进行未经授权的访问。默认情况下禁用 internet 连接防火墙 (icf)。不过,如果您在安装 windows server 2003 家族成员之后和安装 iis 之前以默认配置方式启用了防火墙,客户端将不能连接到您的服务器。以下步骤将配置 icf,以便允许客户端启动连接到服务器的 web 和其他 iis 相关连接。
为 iis 配置 internet 连接防火墙
从"开始"菜单中,单击"控制面板"。
双击"网络连接"。
右键单击"本地连接",然后单击"属性"。
单击"高级"选项卡。
如果不想使用 icf,请确保没有选中"通过限制或阻止来自 internet 的对此计算机的访问来保护我的计算机和网络"复选框,然后单击"确定"。
如果想使用 icf,请确保选中了"通过限制或阻止来自 internet 的对此计算机的访问来保护我的计算机和网络"复选框,然后单击"设置"。
在"服务"选项卡上,启用要允许客户端访问的服务。
在启用服务之后出现的"服务设置"对话框中,执行以下某个操作:
如果要在正在使用的同一台计算机上启用某项服务,这时正确的计算机名称已经填入。单击"确定"。
如果要在网络上的另一台计算机上启用服务,请键入要启用的主持此服务计算机的名称或 ip 地址,然后单击"确定"。
重复第 7 步和第 8 步,直到希望客户端可访问的服务都已启用。
unc 连接被拒绝访问
通 用命名约定 (unc) 验证方法也称为"unc passthrough 验证",它确定获得远程计算机上 unc 共享访问使用的凭据。从 iis 6.0 开始,unc 验证使用以下方法查看请求用户和配置数据库 uncusername 和 uncpassword 属性中存储的凭据,以确定传送到具有 unc 共享的计算机上的凭据:
如果指定了 uncusername(非空)并且 uncpassword 有效,则将配置数据库用户凭据作为访问的用户标识发送到远程共享。如果指定了 uncusername(非空)但是 uncpassword 无效,则向客户端发送"500 内部服务器错误:用户名或密码无效"消息。
如果 uncusername 为空,则将请求用户的凭据(用于已验证请求的一组验证的凭据或用于匿名请求的 iusr_computername 凭据)作为访问的用户标识发送到远程共享。
注意 不再将 uncauthenticationpassthrough 配置数据库项用于 unc 验证。
禁止访问 system32 目录中的控制台应用程序
除 非提出请求的远程用户是 administrators 组中经过验证的成员,否则,使用 windows system32 目录中控制台应用程序(如 cmd.exe)的请求被拒绝访问。这种拒绝访问是由于以下原因造成的:windows system32 目录中所有控制台应用程序的特殊访问控制列表 (acl) 仅限管理员、本地系统、交互用户和服务能够访问。acl 限制并不影响拥有访问权限的本地登录用户,也不会影响您自己的自定义 cgi 可执行程序。
[pagesplitxx]
问题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:无法在网站后台上传超过200k的文件。
原因:
在 IIS 6.0 中,默认设置是特别严格和安全的,这样可以最大限度地减少因以前太宽松的超时和限制而造成的***。
配置数据库属性实施的最大 ASP 张贴大小为 204,800 个字节,并将各个字段限制为 100 KB。在 IIS 6.0 之前的版本中,没有张贴限制。
这就造成了文件上传不能超过200k,而事实上是提交数据不能超过200k,你可以发一个很长的帖子试试,也会出现这个错误
解决办法:
然后在服务里关闭iis admin service服务
找到windows\system32\inesrv\下的metabase.xml,
打开,找到ASPMaxRequestEntityAllowed 把他修改为需要的值,默认为204800,即200K
然后重启iis admin service服务
把它修改为51200000(50M)
其他问题:
动态或静态内容错误
禁止应用程序对资源进行访问
在 全新安装之后,iis 6.0 以工作进程隔离模式运行。默认情况下,以此模式运行的应用程序使用网络服务标识。"网络服务"是具有极少用户权限的帐户,因此可通过限制对 web 服务器上资源的访问来提供更高的安全性。如果在服务器处于工作进程隔离模式时将应用程序迁移到 iis 6.0,并且应用程序先前作为本地系统在进程内运行(在 inetinfo.exe 中),则应用程序可能由于网络服务标识设定的限制无法访问资源。本地系统帐户拥有操作系统上几乎所有资源的访问权限,因此,可能会产生严重的安全隐患。尽 可能不要使用本地系统帐户。如果必须使用本地系统帐户来运行某个应用程序,则在其自己的虚拟目录中的新应用程序池中运行该应用程序,以便通过隔离该应用程 序来减少***面。或者,如果应用程序需要使用可信计算库 (tcb) 的权限,则以可配置的身份运行该应用程序,并给该可配置的身份指派 tcb 权限。但是,这种方法仍存在安全隐患,因为可通过 tcb 权限执行很多操作。
详细信息,请参阅配置工作进程标识和 iis 和内置帐户。
动态内容请求返回 404 错误
为 了更好地预防恶意用户和***者的***,iis 是在高度安全和锁定模式下安装的。在默认情况下,iis 仅处理静态内容,这意味着除非启用 asp、asp.net、在服务器端的包含文件、webdav 发布、frontpage® server extensions 和通用网关接口等功能,否则无法使用这些功能。如果在安装 iis 后没有启用此功能,则在拒绝此类服务时,iis 默认返回常规 404 自定义错误页以防止泄漏配置信息。默认情况下,iis 还将 404 错误及子状态代码 2 (404.2) 写入到 w3c 扩展日志文件中。
要 点 您必须是本地计算机上 administrators 组的成员或者您必须被委派相应的权限才能执行下列步骤。作为安全性的最佳操作,请使用不属于 administrators 组的帐户登录计算机,然后使用运行方式命令以管理员身份运行 iis 管理器。在命令提示符下,键入 runas /user:administrative_accountname "mmc %systemroot%\system32\inetsrv\iis.msc"。
启用或禁用 web 服务扩展
在 iis 管理器中,展开本地计算机,然后单击"web 服务扩展"。
在详细信息窗格中,单击要启用或禁用的 web 服务扩展。
要启用已禁用的 web 服务扩展,请单击"允许"。
要禁用已启用的 web 服务扩展,请单击"禁止"。
单击"确定"。
要以编程方式启用或禁用 web 服务扩展,请参阅 websvcextrestrictionlist。
静态文件请求返回 404 错误
对 于静态内容请求,此版本的 iis 仅处理具有已知文件扩展名的文件请求,此功能称为"已知扩展名"。如果所请求资源的文件扩展名没有映射到 mimemap 属性中的已知扩展名,则 iis 就会拒绝该请求,并默认在 w3c 扩展日志文件中记录 404 错误和子状态代码 3 (404.3)。要防止泄漏配置信息,可以将 iis 配置为在拒绝此类服务时默认返回常规 404 自定义错误页。您可以使用 iis 管理器添加或编辑多用途 internet 邮件交换 (mime) 映射。要关闭"已知扩展名"功能并允许 iis 处理具有任何扩展名的文件,可以将 *,application/octet-stream 值添加到 mime 映射列表中。如果更新全局 mime 映射,则在工作进程回收或重新启动万维网发布服务(www 服务)后,更改才会生效。如果更新单个网站 mime 映射,则更改会立即生效。
有关添加或编辑 mime 映射的详细信息,请参阅使用 mime 类型。
工作进程回收丢失应用程序会话状态
默认情况下,工作进程在 120 分钟后回收。如果在回收工作进程时 asp 应用程序并不存储会话状态,则该 asp 应用程序中的会话状态可能会丢失。要解决此问题,可以将会话状态存储在数据库中,或者禁用工作进程回收。
禁用工作进程回收
在 iis 管理器中,展开本地计算机,展开"应用程序池",右键单击该应用程序池,然后单击"属性"。
在"回收"选项卡上,清除"回收工作进程(分钟)"复选框。
单击"确定"。
在服务器端的包含文件指令 (#i nclude) 返回 404 错误(对于 .stm 文件)或 0131 错误(对于 .asp 文件)
如 果 asp 页使用 #i nclude 在服务器端的包含文件指令和 ".." 记号来引用某个父目录,则除非重新配置了 aspenableparentpaths 配置数据库属性,否则,该指令将返回一条错误。默认情况下,将该属性设置为 false。如果将该属性设置为 true,则可能会产生潜在的安全隐患,因为包含文件路径可以访问应用程序根目录外的关键或机密文件。
通过 iis 管理器启用父路径
在 iis 管理器中,展开本地计算机,右键单击要配置的应用程序的开始位置目录,然后单击"属性"。
单击"目录"选项卡,然后单击"配置"。
单击"选项"选项卡。
在"应用程序配置"部分,选择"启用父路径"复选框。
单击"确定"。
asp 在事件日志中给 global.asa 生成"权限被拒绝"错误
由 于早期版本的 asp 在事件中没有用户上下文,因此只能在宿主进程的安全上下文(或用户标识)中执行事件。这将会导致一些问题,例如在将文件写入 session_onend 事件中时发生拒绝访问错误。在当前版本中,asp 默认匿名运行 global.asa 事件、application_onend 和 session_onend(默认值为 true)。
要以编程方式更改此设置,请参阅 http://www.microsoft.com/technet/prodtechnol/windowsserver2003/zh-chs/library/iis/55aa5aaf-813a-40f0-9679-0032001f8305.mspx?mfr=true。
cgi 进程不启动
如 果 cgi 进程没有运行,则确保已启用了 cgi web 服务扩展。请参阅本主题中的动态内容请求返回 404 错误。另外,除非给运行 cgi 进程使用的帐户指派了某些用户权限,否则,cgi 不会启用。您可以将该帐户添加为 iis_wpg 组的成员,并为它分配以下两种用户权限:
调整进程的内存配额
替换进程级令牌
为本地计算机上的帐户分配用户权限
从"开始"菜单中,指向"管理工具",然后单击"本地安全策略"。
展开"安全设置",双击"本地策略",然后双击"用户权限分配"。
在详细信息窗格中,双击要更改的策略。
单击"添加用户或组"。
在"输入对象名称来选择"框中,输入用户或组的名称。
单击"确定"。
将 asp.net 页作为静态文件返回
如 果安装了 iis 6.0 而没有安装 asp.net,则将 asp.net 文件作为静态文件返回。如果重新安装了 iis 6.0 而没有重新注册 asp.net,则也可能会出现该错误。要了解如何纠正此问题,请参阅 asp.net iis 注册工具和使用 i 选项。
windows nt server 的协作数据对象失败
microsoft® windows nt® server 的协作数据对象 (cdonts) 已从 microsoft windows® server 2003 家族中删除。如果 web 应用程序使用 cdonts,则可以将它们转换为 microsoft 协作数据对象 (cdo)。cdonts 中的大多数方法在 cdo 中都有相匹配的方法,但是名称可能不同。
有关平台软件开发工具包 (psdk) 中 cdo 的参考资料,请参阅 msdn online 上的 overview of cdo。
连接错误
客户端请求收到 503 错误
检 查错误事件日志以确定 503 错误是在 http.sys 中还是在万维网发布服务(www 服务)中检测到的。如果该错误是在 http.sys 中检测到的,则可能是由于队列中的请求太多,而导致 http.sys 超过其应用程序池队列长度限制。要解决此问题,请增加应用程序池队列长度限制。
更改应用程序池队列长度限制
在 iis 管理器中,展开本地计算机,展开"应用程序池"文件夹,右键单击应用程序,然后单击"属性"。
单击"性能"选项卡。
在"请求队列限制"部分中,选中"核心请求队列限制为"复选框,然后键入队列请求的最大数量。
单击"确定"。
如 果在 www 服务中检测到 503 错误,则问题可能是 iis 已启动了快速失败保护,因为在给定一段时间内为应用程序池分配的许多工作进程都处于不正常的运行状态。要解决此问题,请增加启动快速失败保护前出现的故障 数量或时间。您应该测试应用程序是否存在内存泄漏或者其他使工作进程处于不正常状态的问题。
配置快速失败保护
在 iis 管理器中,展开本地计算机,展开"应用程序池",右键单击该应用程序池,然后单击"属性"。
单击"运行状况"选项卡。
在"失败数"框中,键入在禁用工作进程之前要检测的工作进程失败数量。
在"时间段"框中,键入累积失败总数的时间长短(分钟)。
单击"确定"。
进行子验证登录的匿名帐户 (iusr_computername) 收到 401 错误
默认情况下,在 iis 6.0 中不启用子验证组件 iissuba.dll。在早期版本中,iissuba.dll 允许 iis 管理匿名帐户的密码,这会产生潜在的安全隐患。在 iis 6.0 中,您可以使用子验证管理匿名帐户的密码,但必须满足以下条件:
对于授权匿名访问的应用程序,工作进程以本地系统身份运行。
注册了子验证组件 iissuba.dll。
启用了 anonymouspasswordsynch 配置数据库属性(设置为 true)。
对于 iis 6.0 全新安装和从配置了子验证的 iis 安装升级到 iis 6.0,为满足以上要求所采取的操作是不同的。
有关配置子验证的步骤的信息,请参阅匿名身份验证。
客户端不能连接到服务器
windows server 2003 家族提供基于软件的防火墙,以防止从远程计算机对服务器进行未经授权的访问。默认情况下禁用 internet 连接防火墙 (icf)。不过,如果您在安装 windows server 2003 家族成员之后和安装 iis 之前以默认配置方式启用了防火墙,客户端将不能连接到您的服务器。以下步骤将配置 icf,以便允许客户端启动连接到服务器的 web 和其他 iis 相关连接。
为 iis 配置 internet 连接防火墙
从"开始"菜单中,单击"控制面板"。
双击"网络连接"。
右键单击"本地连接",然后单击"属性"。
单击"高级"选项卡。
如果不想使用 icf,请确保没有选中"通过限制或阻止来自 internet 的对此计算机的访问来保护我的计算机和网络"复选框,然后单击"确定"。
如果想使用 icf,请确保选中了"通过限制或阻止来自 internet 的对此计算机的访问来保护我的计算机和网络"复选框,然后单击"设置"。
在"服务"选项卡上,启用要允许客户端访问的服务。
在启用服务之后出现的"服务设置"对话框中,执行以下某个操作:
如果要在正在使用的同一台计算机上启用某项服务,这时正确的计算机名称已经填入。单击"确定"。
如果要在网络上的另一台计算机上启用服务,请键入要启用的主持此服务计算机的名称或 ip 地址,然后单击"确定"。
重复第 7 步和第 8 步,直到希望客户端可访问的服务都已启用。
unc 连接被拒绝访问
通 用命名约定 (unc) 验证方法也称为"unc passthrough 验证",它确定获得远程计算机上 unc 共享访问使用的凭据。从 iis 6.0 开始,unc 验证使用以下方法查看请求用户和配置数据库 uncusername 和 uncpassword 属性中存储的凭据,以确定传送到具有 unc 共享的计算机上的凭据:
如果指定了 uncusername(非空)并且 uncpassword 有效,则将配置数据库用户凭据作为访问的用户标识发送到远程共享。如果指定了 uncusername(非空)但是 uncpassword 无效,则向客户端发送"500 内部服务器错误:用户名或密码无效"消息。
如果 uncusername 为空,则将请求用户的凭据(用于已验证请求的一组验证的凭据或用于匿名请求的 iusr_computername 凭据)作为访问的用户标识发送到远程共享。
注意 不再将 uncauthenticationpassthrough 配置数据库项用于 unc 验证。
禁止访问 system32 目录中的控制台应用程序
除 非提出请求的远程用户是 administrators 组中经过验证的成员,否则,使用 windows system32 目录中控制台应用程序(如 cmd.exe)的请求被拒绝访问。这种拒绝访问是由于以下原因造成的:windows system32 目录中所有控制台应用程序的特殊访问控制列表 (acl) 仅限管理员、本地系统、交互用户和服务能够访问。acl 限制并不影响拥有访问权限的本地登录用户,也不会影响您自己的自定义 cgi 可执行程序。
客户端请求出现错误或超时
在 iis 6.0 中,默认设置是特别严格和安全的,这样可以最大限度地减少因以前太宽松的超时和限制而造成的***。iis 在连接级别强制实施以下超时限制:
响应缓冲限制:aspbufferinglimit 配置数据库属性的默认值为 4 mb。如果 asp 脚本缓冲大于此值,就会出现错误。在 iis 6.0 之前的版本中,没有缓冲限制。
张贴限制:aspmaxrequestentityallowed 配置数据库属性实施的最大 asp 张贴大小为 204,800 个字节,并将各个字段限制为 100 kb。在 iis 6.0 之前的版本中,没有张贴限制。
serverlistentimeout 配置数据库属性不再存在: serverlistentimeout 已被以下配置数据库属性代替:
connectiontimeout:此属性指定在断开非活动连接前服务器等待的时间(以秒为单位)。
minfilebytespersec:当 iis 响应客户端请求时,minfilebytespersec 属性决定了客户端收到整个响应的时间长短。如果客户机接收整个响应所花费的时间太长,则内核模式驱动程序 http.sys 会根据超时值终止连接。
headerwaittimeout: 在客户端连接到 web 服务器时,会给客户机指定发送请求的所有标题的时间限制(用结尾的双 \r\n 来区分)。如果在 headerwaittimeout 指示的时间内没有收到请求的完整标题集,则 http.sys 将重置该连接。您可以对 headerwaittimeout 的值进行配置。
标题大小限制:默认情况下,http.sys 仅接受标题小于 16 kb 的请求。这意味着,如果 http.sys 收到的 16 kb 中不包含结尾的 <crlf><crlf> 序列,则 http.sys 认为请求是恶意的并将终止连接。通过调整 maxrequestbytes 注册表项中的值,您可以更改标题大小限制。
其他错误
对 unix 或 linux 服务器的文件请求返回错误的文件或错误信息
如果 iis 必须访问 unix 或 linux 系统上的文件,除非在 iis 中启用了网络文件系统 (nfs) 支持,否则文件名大小写区分可能会引起问题。
unix 和 linux 均支持混合大小写的文件名,而 iis 完全支持以区分大小写的方式请求静态文件。然而,当 iis 随后从其静态文件缓存中请求文件时,会出现问题。因为所有的文件名会在 iis 缓存中转换为大写字母,从 iis 静态文件缓存进行完第一次请求之后,所有的请求都可能失败或返回错误的文件。
解决该问题的方法是禁用 iis 静态文件缓存,以便所有文件请求都以全新形式发出,从而保持正确的文件名大小写。可以针对网站上的单个虚拟目录禁用静态文件缓存,也可以针对所有站点在全局禁用。
注意 更改该设置不会影响缓存 asp 文件和模板的方式。
为特定网站虚拟目录禁用静态文件缓存
编辑配置数据库,并将 md_vr_no_cache 属性设置为 1。
针对所有站点禁用静态文件缓存
编辑注册表并将二进制值 disablestaticfilecache=1 添加到 hkey_local_machine\system\currentcontrolset\services\inetinfo\parameters 项中。
找不到 /scripts 或 /msadc 目录
默 认情况下,iis 5.0 中的 /scripts 和 /msadc 目录允许运行脚本和可执行文件。在 iis 6.0 中删除了这些目录,因为如果恶意用户能够访问这些目录之一,该用户就可以运行脚本或可执行文件,并有可能会控制 web 服务器。如果服务器配置需要此类目录,则需要创建一个目录并为其指派适当的 ntfs 权限。
isapi 筛选器在 ui 中没有显示为"已加载"
在 iis 6.0 中,为了优化资源,直到所请求的网站需要 isapi 筛选器时才会加载它。直到提出此类请求时,iis 管理器才会显示 isapi 筛选器的状态。另外,如果 isapi 筛选器需要 sf_notify_read_raw_data 筛选器通知,则当 iis 以工作进程隔离模式运行时,不会加载该筛选器。检查 w3svc-wp 中事件的应用程序事件以验证是否加载该筛选器。要解决此问题,请以 iis 5.0 隔离模式运行 iis,或者与 isapi 筛选器供应商联系以获得有关兼容性的更新程序。
要点 如果由于访问控制列表 (acl) 的限制而使 iis 工作进程标识无法加载 isapi 筛选器,则请求收到 503 错误。要解决此问题,请在 isapi 筛选器 dll 上设置 acl 以允许访问 iis_wpg 组。
将 iis 配置为 iis 5.0 隔离模式
在"iis 管理器"中,展开本地计算机,右键单击"网站",然后单击"属性"。
单击"服务"选项卡,选中"以 iis 5.0 隔离模式运行 www 服务"复选框,然后单击"确定"。
要启动 www 服务,请单击"是"。
下面还有一些呵呵
1.如何让asp脚本以system权限运行?
修改你asp脚本所对应的虚拟目录,把"应用程序保护"修改为"低"....
2.如何防止asp***?
基于filesystemobject组件的asp***
cacls %systemroot%\system32\scrrun.dll /e /d guests //禁止guests使用
regsvr32 scrrun.dll /u /s //删除
基于shell.application组件的asp***
cacls %systemroot%\system32\shell32.dll /e /d guests //禁止guests使用
regsvr32 shell32.dll /u /s //删除
3.如何加密asp文件?
从微软免费下载到sce10chs.exe 直接运行即可完成安装过程。
安装完毕后,将生成screnc.exe文件,这是一个运行在dos promapt的命令工具。
运行screnc - l vbscript source.asp destination.asp
生成包含密文asp脚本的新文件destination.asp
用记事本打开看凡是""之内的,不管是否注解,都变成不可阅读的密文了
但无法加密中文。
4.如何从iislockdown中提取urlscan?
iislockd.exe /q /c /t:c:\urlscan
5.如何防止content-location标头暴露了web服务器的内部ip地址?
执行
cscript c:\inetpub\adminscripts\adsutil.vbs set w3svc/usehostname true
最后需要重新启动iis
6.如何解决http500内部错误?
iis http500内部错误大部分原因
主要是由于iwam账号的密码不同步造成的。
我们只要同步iwam_myserver账号在com+应用程序中的密码即可解决问题。
执行
cscript c:\inetpub\adminscripts\synciwam.vbs -v
7.如何增强iis防御syn flood的能力?
windows registry editor version 5.00
[hkey_local_machine\system\currentcontrolset\services\tcpip\parameters]
'启动syn***保护。缺省项值为0,表示不开启***保护,项值为1和2表示启动syn***保护,设成2之后
'安全级别更高,对何种状况下认为是***,则需要根据下面的tcpmaxhalfopen和tcpmaxhalfopenretried值
'设定的条件来触发启动了。这里需要注意的是,nt4.0必须设为1,设为2后在某种特殊数据包下会导致系统重启。
"synattackprotect"=dword:00000002
'同时允许打开的半连接数量。所谓半连接,表示未完整建立的tcp会话,用netstat命令可以看到呈syn_rcvd状态
'的就是。这里使用微软建议值,服务器设为100,高级服务器设为500。建议可以设稍微小一点。
"tcpmaxhalfopen"=dword:00000064
'判断是否存在***的触发点。这里使用微软建议值,服务器为80,高级服务器为400。
"tcpmaxhalfopenretried"=dword:00000050
'设置等待syn-ack时间。缺省项值为3,缺省这一过程消耗时间45秒。项值为2,消耗时间为21秒。
'项值为1,消耗时间为9秒。最低可以设为0,表示不等待,消耗时间为3秒。这个值可以根据遭受***规模修改。
'微软站点安全推荐为2。
"tcpmaxconnectresponseretransmissions"=dword:00000001
'设置tcp重传单个数据段的次数。缺省项值为5,缺省这一过程消耗时间240秒。微软站点安全推荐为3。
"tcpmaxdataretransmissions"=dword:00000003
'设置syn***保护的临界点。当可用的backlog变为0时,此参数用于控制syn***保护的开启,微软站点安全推荐为5。
"tcpmaxportsexhausted"=dword:00000005
'禁止ip源路由。缺省项值为1,表示不转发源路由包,项值设为0,表示全部转发,设置为2,表示丢弃所有接受的
'源路由包,微软站点安全推荐为2。
"disableipsourcerouting"=dword:0000002
'限制处于time_wait状态的最长时间。缺省为240秒,最低为30秒,最高为300秒。建议设为30秒。
"tcptimedwaitdelay"=dword:0000001e
8.如何避免*mdb文件被下载?
安装ms发布的urlscan工具,可以从根本上解决这个问题。
同时它也是一个强大的安全工具,你可以从ms的网站上获取更为详细的信息。
9.如何让iis的最小ntfs权限运行?
依次做下面的工作:
a.选取整个硬盘:
system:完全控制
administrator:完全控制
(允许将来自父系的可继承性权限传播给对象)
b.\program files\common files:
everyone:读取及运行
列出文件目录
读取
(允许将来自父系的可继承性权限传播给对象)
c.\inetpub\wwwroot:
iusr_machine:读取及运行
列出文件目录
读取
(允许将来自父系的可继承性权限传播给对象)
e.\winnt\system32:
选择除inetsrv和centsrv以外的所有目录,
去除"允许将来自父系的可继承性权限传播给对象"选框,复制。
f.\winnt:
选择除了downloaded program files、help、iis temporary compressed files、
offline web pages、system32、tasks、temp、web以外的所有目录
去除"允许将来自父系的可继承性权限传播给对象"选框,复制。
g.\winnt:
everyone:读取及运行
列出文件目录
读取
(允许将来自父系的可继承性权限传播给对象)
h.\winnt\temp:(允许访问数据库并显示在asp页面上)
everyone:修改
(允许将来自父系的可继承性权限传播给对象)
10.如何隐藏iis版本?
一个***可以可以轻易的telnet到你的web端口,发送get命令来获取很多信息
iis存放iis banner的所对应的dll文件如下:
web:c:\winnt\system32\inetsrv\w3svc.dll
ftp:c:\winnt\system32\inetsrv\ftpsvc2.dll
smtp:c:\winnt\system32\inetsrv\smtpsvc.dll
你可以用16进制编辑器去修改那些dll文件的关键字,比如iis的microsoft-iis/5.0
具体过程如下:
1.停掉iis iisreset /stop
2.删除%systemroot%\system32\dllcache目录下的同名文件
3.修改
另外,防火墙阻止,ODBC配置错误,Web服务器性能限制,线程限制等因素也是造成IIS服务器无法访问的可能原因,这里就不再一一馈述了。希望此帖能解决大家的大部分问题:)
转载于:https://blog.51cto.com/summervast/283899